| pop 删除数组最后一个元素,并返回该元素 var a =    ["aa","bb","cc"];document.write(a.pop());    // -> cc
 document.write(a);        // -> aa, bb
 如果数组为空,则返回undefined push 往数组后面添加数组,并返回数组新长度 var a =    ["aa","bb","cc"];document.write(a.push("dd"));    // -> 4
 document.write(a);        // -> aa,bb,cc,dd
 document.write(a.push([1,2,3]));  // -> 5
 document.write(a);        // -> aa,bb,cc,dd,1,2,3
 跟concat的区别在于,concat不影响原数组,直接返回新数组,而push则直接修改原数组,返回的是数组新长度 sort 数组排序,先看个例子 var a = [11,2,3,33445,5654,654,"asd","b"];alert(a.sort()); // -> 11,2,3,33445,5654,654,asd,b
 结果是不是很意外,没错,排序并不是按整型大小,而是字符串对比,就是取第一个字符的ANSI码对比,小的排前面,相同的话取第二个字符再比,如果要按整型数值比较,可以这样 var a = [11,2,3,33445,5654,654];a.sort(function(a,b) {
 return a - b;
 });
 alert(a);  //    -> 2,3,11,654,5654,33445
 sort()方法有个可选参数,就是代码里的function,这是个简单的例子,不可对非数字进行排序,非数字需要多做判断,这里就不多讲 reverse 对数组进行反排序跟,sort()一样,取第一字符ASCII值进行比较 var a = [11,3,5,66,4];alert(a.reverse());  // -> 4,66,5,3,11
 如果数组里面还包含数组,则当为对象处理,并不会把元素解出来 >var a = ['a','b','c','d','e','f','g',[4,11,33]];alert(a.reverse());  // -> 4,11,33,g,f,e,d,c,b,a
 alert(a.join(" * "));  // -> 4,11,33 * g * f * e * d * c * b * a
 按理应该是11排最后面,因为这里把 4,11,33 当做完整的对象比较,所以被排在第一位。看不明白的话,用join()串起来,就明了多 shift 删除数组第一个元素,并返回该元素,跟pop差不多 var a =    ["aa","bb","cc"];document.write(a.shift());   // -> aa
 document.write(a);        // -> bb,cc
 当数组为空时,返回undefined unshift 跟shift相反,往数组最前面添加元素,并返回数组新长度 var a =    ["aa","bb","cc"];document.write(a.unshift(11));   // -> 4 注:IE下返回undefined
 document.write(a);        // -> 11,aa,bb,cc
 document.write(a.unshift([11,22]));   // -> 5
 document.write(a);        // -> 11,22,11,aa,bb,cc
 document.write(a.unshift("cat"));  // -> 6
 document.write(a);        // -> cat,11,22,11,aa,bb,cc
 注意该方法,在IE下将返回undefined,貌似微软的bug,我在firefox下则能正确发挥数组新长度 出处:蓝色理想
责任编辑:bluehearts
 上一页 认识Javascript数组 [2] 下一页 认识Javascript数组 [4] ◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
	      |