javascript数组

href="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_filelist.xml" rel="File-List" /> href="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_themedata.thmx" rel="themeData" /> href="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_colorschememapping.xml" rel="colorSchemeMapping" />

Ø  (6)使用数组

ü  基本操作

         <script>

              var a=new Array("cctv","sxtv","tytv");

              var a=new Array(3);

              var a=new Array();

              a[0]="cctv";

              a[1]="sxtv";

              a[2]="tytv";

              a[3]="xzy";

              for(i=0;i<a.length;i++)

              document.writeln(a[i]);

         </script>

ü  多维数组

 

<script>

var rows= new Array();

rows[0]=new Array(5);

rows[1]=new Array(5);

 

rows[0][0]="你好";

rows[0][1]="邢志云";

 

if(rows[0][0]!=null)

{

    alert(rows[0][0]);

}

 

</script>

 

ü  数组赋值

可以像上边那样简单的依次赋值,也可以像下边的这样:

<script>

var xzy=new Array();

xzy=[1,2,3,4,5,"邢志云","嘿嘿"];//给数组xzy赋值

for(var i=0;i<xzy.length;i++)

{

       alert(xzy[i]);

}

</script>

也可以直接赋值成多维数组

<script>

var s=["你好",["中国","太原","邢志云"],[3,3333],[4,4444],[5,5555],["0",["a","b","c"]],"cc"];

//        0               1                   2       3        4             5            6

//                  10    11       12     20  21   30  31    40  41

 

alert(s);//你好,中国,太原,邢志云,3,3333,4,4444,5,5555

alert(s[1]);//中国,太原,邢志云

alert(s[1][2]);//邢志云

alert(s[2][0]);//3

alert(s[2][1]);//3333

alert(s[5][1][0]);//a

alert(s[5][1][2]);//c

alert(s[6]);//cc

</script>

 

ü  push:数据可以向最后的追加元素

var arr=new Array()

arr[0]="xbc1";

arr[1]="bcx2";

arr[2]="cctv3";

arr[3]="xctv4";

arr.push("邢志云");//向最后追加,也可以同时push多个

arr.push("0123");

for(i=0;i<arr.length;i++)

{

       if(arr[i]!=null)

       document.writeln(arr[i]);

}

ü  pop:弹出最后一个元素,后进先出

       var arr=new Array();

       var s;

       arr[0]="a1";

       arr[1]="a2";

       arr[2]="a3";

       arr[3]="a4";

       s=arr.pop();//弹出最后一个元素,把值付给s,并删除最后一个元素

       alert(s);

       for(i=0;i<arr.length;i++)

       {

              document.writeln(arr[i]);

       }

       //显示: a 1 a 2 a 3

ü  unshift:插入到第一个之前,

       var arr=new Array();

       var s;

       arr[0]="a1";

       arr[1]="a2";

       arr[2]="a3";

       arr[3]="a4";

       arr.unshift("第一","第二");//插到第一个元素之前,后面的整体后移

       for(i=0;i<arr.length;i++)

       {

              document.write(arr[i]+":");

       }

       //显示: 第一:第二:a1:a2:a3:a4:

ü  shift:弹出第一个元素,先进先出

       var arr=new Array();

       var s;

       arr[0]="a1";

       arr[1]="a2";

       arr[2]="a3";

       arr[3]="a4";

       s=arr.shift();//弹出第一个元素,把值付给s,并删除第一个元素

       alert(s);

       for(i=0;i<arr.length;i++)

       {

              document.writeln(arr[i]);

       }

       //显示: a 2 a 3 a 4

ü  join:利用数组的join方法,连接所有的数组内容

数组的join(string val)可以将数组元素连接起来,并且用中间插入val,

当在网页上交互显示下拉框内容的时候可以将内容加载到数组内,再利用innerHTML将内容显示在出来

        <script>

            var a=new Array("cctv","sxtv","tytv");

            var a=new Array(3);

            var a=new Array();

            a[0]="cctv";

            a[1]="sxtv";

            a[2]="tytv";

            a[3]="xzy";

            document.writeln(a.join('<br>'));//如果直接用a.join(),则默认会用,分割

         </script>

显示:

cctv sxtv tytv xzy

用这种方式连接字符串要比 s=s+”ddd”快的多

ü  sort:数组排序 (从小到大)

var arr=new Array(1000)

arr[0]="xbc1";

arr[1]="bcx2";

arr[2]="cctv3";

arr[5]="xctv4";

arr.sort();

for(i=0;i<arr.length;i++)

{

    if(arr[i]!=null)

    document.writeln(arr[i]);

}

ü  reverse:数组反向,sort配合使用能实现从大到小排序

    var arr=new Array()

    arr[0]="a1";

    arr[1]="a2";

    arr[2]="a3";

    arr[3]="a4";

    arr.push("邢志云");

    arr.push("0123");

    //arr.sort();

    arr.reverse();//数组反向排列

    for(i=0;i<arr.length;i++)

    {

        document.writeln(arr[i]);

    }

    //显示: 0123 邢志云 a 4 a 3 a 2 a 1

 

ü  slice:数组截断后赋值给另外一个数组(不改变原始数组)

var xzy1=new Array();

xzy1=["a","b","c","hello","usa","eng"];

//     0   1   2     3      4     5

var xzy2=xzy1.slice(2,4);//从数组xzy12号元素开始到4号元素停止的值结束转成一个数组

for(var i=0;i<xzy2.length;i++)

{

    document.write(xzy2[i]+":");//显示c hello

}

也可以这么写

<script>

var xzy1=new Array();

xzy1=["a","b","c","hello","usa","eng"];

//     0   1   2     3      4     5

var xzy2=Array.prototype.slice.call(xzy1,2,4);//从数组xzy12号元素开始到4号元素停止的值结束转成一个数组

for(var i=0;i<xzy2.length;i++)

{

    alert(xzy2[i]);//显示c hello

}

</script>

 

ü  splice:数组截断或清空(改变原始数组)

    var arr=new Array();

    var s;

    arr[0]="a1";

    arr[1]="a2";

    arr[2]="a3";

    arr[3]="a4";

    arr[4]="a5";

    arr[5]="a6";

    var arr2=arr.splice(3,2,"x1","x2");//3号开始的2个元素,x1x2替换,并把替换下的值重新赋给数组arr2

                                       //如果没有参数"x1","x2",则对应的2个元素会从arr中删除,后面的前推

    for(i=0;i<arr.length;i++)

    {

        document.write(arr[i]+":");//显示: a1:a2:a3:x1:x2:a6:

    }

       

   

    document.write("<br/>");

    for(i=0;i<arr2.length;i++)

    {

        document.write(arr2[i]+":");//显示:  a4:a5:

    }

ü  利用splice来清空数组

    var arr=new Array();

    arr[0]="a1";

    arr[1]="a2";

    arr[2]="a3";

    arr[3]="a4";

    arr[4]="a5";

    arr[5]="a6";

    alert(arr.length);//显示6

    arr.splice(0,100000000);//可以理解为把arr数组清空,又回到初始状态

    alert(arr.length);//显示0

 

ü  concat:数组连接

    var arr=new Array();

    var s;

    arr[0]="a1";

    arr[1]="a2";

    arr[2]="a3";

    arr[3]="a4";

    arr[4]="a5";

    arr[5]="a6";

    var arr2=["b1","b2","b3"];

    var arr3=arr.concat(arr2);

    for(i=0;i<arr3.length;i++)

    {

        document.write(arr3[i]+":");//显示: a1:a2:a3:a4:a5:a6:b1:b2:b3:

    }

ü  使用Map( 2006-12-26 )

map1:

<script>

 

var map = {};

 

map["张三"] = "1362348754";

map["李四"] = "0351-98476345";

map["王五"] = "0358-4873622";

 

alert(map["李四"]);

</script>

 

map={}就可以把map清空;

map2:

<script>

 

var map = new Array();

 

map["张三"] = "1362348754";

map["李四"] = "0351-98476345";

map["王五"] = "0358-4873622";

 

alert(map["李四"]);//显示:0351-98476345

alert(map.length);//这里map.length显示为0

 

 

map[0] = "0358-4873622";

map[1] = "0358-4873622";

map[2] = "0358-4873622";

alert(map.length);//这里map.length显示为3

for(var i=0;i<map.length;i++)

{

    document.write(map[i]);

}

alert(map["李四"]);//显示:0351-98476345

</script>

map3:

var map={"姓名":"邢志云","性别":"","年龄":34}

map.婚否="已婚";//可以动态添加

eval("map.国籍='中华'");//map.后面的标识符只能是以字符开头的,并且不能有-所以全球标识符不宜用在这里

alert(map.国籍);

//alert(map.姓名);//邢志云

//alert(map.年龄);//34

map["民族"]="汉族";//也可以像第一条中那样赋值,但这种可以用任意串做键,: map["1-2"]="汉族";alert(map.姓名+":"+map["1-2"]);//也能正常显示

alert(map.姓名+":"+map.民族);

for(var colname in map)

{

    alert(colname );//姓名 性别 年龄 婚否

}

for(var colname in map)

{

    alert(map[colname]);//邢志云 男 34 已婚

}

还可以这样

var s="'姓名':'邢志云','性别':'',35:'年龄'";

eval("var map={"+s+"}");

alert(map["姓名"]);

或者

var s="姓名:'邢志云',性别:'',35:'年龄'";

eval("var map={"+s+"}");

alert(map["姓名"]);

还可以嵌套

var map=

{

"人员":

    {

    "张三":""

    ,"赵六":""

    }

,"车辆":

    {

    "桑塔纳":"6"

    ,"别克":"10"

    }

,"年龄":34

}

alert(map.人员.赵六);//

alert(map.车辆.桑塔纳);//6

使用自定义的属性的数组

var a=new Array();

a[0]={};

a[0].姓名="邢志云";

a[0].年龄=32;

 

a[1]={};

a[1].姓名="李四";

a[1].年龄=28;

for(var i=0;i<a.length;i++)

{

    alert(a[i].姓名+":"+a[i].年龄);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值