一、创建
//最简单的方法就是使用数组直接量 var empty=[]; var primes=[2,3,4,5,6]; var misc=[1.1,true,"a"]; //数组直接量的值也可以是表达式 var table=[base,base+1,base+2,base+3]; //也可以包含对象或者其他数组 var b=[[1,{x:1,y:2}],[2,{x:3,y:4}]]; //未定义的元素可以通过忽略逗号直接的元素值来创建 var count=[1,,3]; var undefs=[,,]; //创建数组的另一种方法是使用 Array() 构造函数 //无参数调用 var a= new Array{}; //显式指定数组前n个元素的值 var a=new Array(5,4,3,2,1,"testing testing"); //传递一个数字参数,指定了数组的长度 var a=new Array(10);
二、遍历数组
//常用方式 var fruits=["mango","banana","cherry","pear"]; for(var i=0;i<fruits.length;i++) { alert(fruits[i]); } //如果有未定义的元素,则需要验证下 for(var i=0;i<fruits.length;i++) { if(fruits[i]) alert(fruits[i]); } //可以使用同样的方法来初始化Array() var lookup_table=new Array(1024); for(var i=0;i<lookup_table.length;i++) { lookup_table[i]=i*512; }
三、数组方法
//join()方法 //把数组中的所有元素都转换成字符串 var a=[1,2,3]; var s=a.join(); //s=="1,2,3" //指定分隔符 s=a.join("|"); //s=="1|2|3" //reverse()方法 //颠倒数组元素的顺序 var a=new Array(1,2,3); a.reverse(); //sort()方法 //对数组元素进行排序,返回排序后的数组 var a=new Array["banana","cherry","apple"]; a.sort(); var s=a.join(","); //s=="apple,banana,cherry" //如果要要按别的顺序排序,必须将一个比较函数作为参数传递,如果第一个参数应该位于第二个参数钱,则返回一个小于0的数,后则返回大于0的数,相等返回0 var a=[33,4,111,222]; a.sort(); a.sort(function(a,b) { return a-b; } ); //concat()方法 //创建并返回一个数组,包含了调用方法的原数组的元素,同时将包含的参数添加到返回的数组中,但不能递归地展开数组 var a=[1,2,3]; a.concat(4,5); //returns [1,2,3,4,5] a.concat([4,5]); //returns [1,2,3,4,5] a.concat([4,5],[6,7]); //returns [1,2,3,4,5,6,7] a.concat(4,[5,[6,7]]); //returns [1,2,3,4,5,[6,7]] //slice() 方法 //返回的是指定数组的一个片段,两个参数指定了要返回的片段的起止点 var a=[1,2,3,4,5]; a.slice(0,3); //returns [1,2,3] a.slice(3); //returns [4,5] a.slice(1,-1); //returns [2,3,4] a.slice(-3,-2); //returns [3] //splice()方法 //第一个参数指定要插入或删除的元素在数组中的位置,第二个参数指定了要从数组中删除的元素的个数,如果第二个参数省略了,那么将删除从开始元素导数组结尾处的所有元素 var a-[1,2,3,4,5,6,7,8]; a.splice(4); //returns [5,6,7,8]; a is[1,2,3,4] a.splice(1,2); //returns[2,3];a is[1,4] a.splice(1,1); //returns[4]; a is[1] //后面的参数指定的是从第一个参数位置插入的元素 var a=[1,2,3,4,5]; a.splice(2,0,'a','b'); //returns []; a is[1,2,'a','b',3,4,5] a.splice(2,2,[1,2],3); //returns ['a','b'] ; a is [1,2,[1,2],3,3,4,5] //push()将一个或多个新元素附加到数组的尾部,返回数组的新长度 //pop() 删除一个或多个元素,返回删除的值 var stack=[]; stack.push(1,2); //stack:[1,2] returns 2 stack.pop(); //stack:[1];returns 2
四、类似数组的对象
//给一个常规的对象添加属性使其成为一个类似数组的对象,然后遍历所得的伪数组的“元素” var a={}; var i=0; while(i<10){ a[i]=i*i; i++; } a.length=i; var total=0; for(var j=0;j<a.length;j++){ totl+=a[j]; }