您的位置:首页 > Web前端 > JavaScript

JS中数组的应用

2012-02-24 14:11 302 查看


基本操作

<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>

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

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]);

}

弹出最后一个元素,后进先出

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]);

}

//显示: a1 a2 a3

插入到第一个之前,

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:

弹出第一个元素,先进先出

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]);

}

//显示: a2 a3 a4

ü 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”快的多

数组排序 (从小到大)

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]);

}

数组反向,和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 邢志云 a4 a3 a2 a1

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

var xzy1=new Array();

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

//     0   1   2     3      4     5

var xzy2=xzy1.slice(2,4);//从数组xzy1的2号元素开始到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);//从数组xzy1的2号元素开始到4号元素停止的值结束转成一个数组

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

{

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

}

</script>

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

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个元素,用x1和x2替换,并把替换下的值重新赋给数组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

数组连接

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].年龄);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  join null c