数组的常用方法
插入和删除
-
push()接收任意数量的参数,将它们添加到数组末尾,返回数组长度
-
pop()从数组末尾伤处最后一项,返回被移除的项
-
unshift()接收任意数量的参数,将它们添加到数组前端,返回数组的长度
-
shift()移除数组中第一项,即索引为0的项,返回被移除的项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var color = [];var length1 = color.push("red","blue"); // 从末尾添加alert(length1); // 2alert(color); // red,bluevar deleteItem1 = color.pop(); // 从末尾删除alert(deleteItem1); // "blue"alert(color.lenght) // 1alert(color); // redvar length2 = color.unshift("yellow","green"); // 从前端添加alert(length2); // 3alert(color); // yellow,green,redvar deleteItem2 = color.shift(); // 从前端删除alert(deleteItem2); // "yellow"alert(color.lenght) // 2alert(color); // green,red |
重排序方法
-
reverse()反转数组顺序
123varvalues = [1,2,3,4,5];values.reverse();alert(values);// 5,4,3,2,1 -
sort()默认情况下,会调用每一项的toString()方法,因此是按照ASCII 码排序的,结果按升序排列数组项————最小值位于最前面,最大值位于最后面
123varvalues = [0,1,5,10,15];values.sort();alert(values);// 0,1,10,15,5sort()方法可以接收一个比较函数,以便我们执行哪个值位于哪个值的前面:比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回一个负数,如果两个参数相等返回0,如果第一个参数应该位于第二个参数之后则返回正数。
下面这个例子实现了升序排列:
12345678910111213functioncompare(v1,v2){if(v1 < v2){return-1;}elseif(v1 > v2){return1;}else{return0;}}varvalues = [1,10,5,15,0];values.sort(compare);alert(values);// 0,1,5,10,15上面这个例子中的比较函数可以更简化:
123functioncompare(v1,v2){returnv1 - v2;}
操作方法
-
concat()返回一个新数组,是将参数添加到原数组中构成的,原来的数组保持不变
12345vara = [1,2,3,4,5];varb = a.concat(6,7);//a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]varc = a.concat([6,7],8);//a:[1,2,3,4,5] c:[1,2,3,4,5,6,7,8] -
slice()返回从原数组中指定开始下标到结束下标之间的项组成的新数组,原来的数组保持不变
123vara = [1,2,3,4,5];varb = a.slice(2,5);//a:[1,2,3,4,5] b:[3,4,5] -
splice(start,deleteCount,val1,val2,...)从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 返回被删除的项,如果没有任何删除的项,则返回一个空数组
1234567891011vara = [1,2,3,4,5];varb = a.splice(2,2,7,8,9);//a:[1,2,7,8,9,5] b:[3,4]varb = a.splice(0,1);//同shifta.splice(0,0,-2,-1);//同unshiftvarb = a.splice(a.length-1,1);//同popa.splice(a.length,0,6,7);//同push
位置方法
ECMAScript5为数组添加了两个位置方法:indexOf()和lastIndexOf()。这两个方法都接受两个参数:要查找的项和(可选)表示查找起点的位置索引。返回找到的项在数组中的位置,若没有找到返回-1。
-
indexOf()从数组开头开始向后查找
1234vara = [1,2,3,4,5,4,3,2,1];alert(a.indexOf(4));// 3alert(a.indexOf(4,4));// 5alert(a.indexOf(10));// -1 -
lastIndexOf()从数组末尾开始查找
1234vara = [1,2,3,4,5,4,3,2,1];alert(a.lastIndexOf(4));// 5alert(a.lastIndexOf(4,4));// 3alert(a.lastIndexOf(10));// -1