Javascript数组方法总结
构造数组
var arr1 = new Array();var week = new Array(7);//可以省略new,长度为7var colors = new Array("red","blue","yellow");var colors = ["red","blue","yellow"];var arr2 = [];//空
检测数组
value instanceof ArrayArray.isArray(value)
转换方法
arr.toString();//返回字符串arr.valueOf();//返回数组arr.toLocaleString();//会调用每一项的toLocaleString()方法
栈方法
arr.push('str1','str2');//添加到末尾,参数不限,返回数组长度arr.pop();//移除末尾一项,返回移除的项,数组长度减一
队列方法
arr.shift();//移除并返回第一项,结合push可做队列使用arr.unshift();//在开始处添加任意项,返回新数组长度,结合pop,方向模拟队列
重排序方法
arr.sort();//升序排列,按字符串顺序arr.recerse();//降序function compare(value1,value2){if( value1 < value2 ){return -1;}else if(value1 > value2){//前面大于后面的return 1; //交换}else{return 0;}}//更简单的实现function compare(value1,value2){
return value2-value1;}arr.sort(compare);//将比较函数传递到排序中,得到按数值的升序
操作方法
arr.concat();//可传入一个或多个数组,不是数组,则添加到末尾arr.slice(1);//从1开始到末尾的新数组arr.slice(1,4);//从1到3的新数组//splice()返回的是从原始数组中删除的项所组成的数组arr.splice(1,2);//删除第1项开始的2个项arr.splice(2,2,'newstr');//删除第2项开始的2项,再插入新的项,可以一个或多个,如果第二个参数为0,则仅插入
位置方法
//查找某一项第一次出现的位置,没找到返回-1arr.indexOf(4);//从位置0开始查找4的位置arr.lastIndexOf(4);//从末尾向前查找4的位置arr.indexOf(4,4);//从位置4开始向后查找4的位置arr.lastIndexOf(4,4);//从位置4开始向前查找4的位置
迭代方法
//每个方法接受两个参数:给每一项操作的函数,作用域对象(可选,影响this的值)//传入函数的接受三个参数:数组项的值、该项在数组中的位置,和数组对象本身。//他们都不会修改数组中包含的值every() 给定函数对每一项返回true,则返回truefilter() 返回函数返回值为true的项组成的数组forEach() 没有返回值map() 返会函数每次调用的结果组成的数组some() 给定函数对任意一项返回true则返回truevar numbers = [ 1, 2, 3, 4, 5, 6, 7 ] ;var ereryResult = numbers.every( function(item, index, array ) {return ( item > 2 );} ) ;alert(everResult);//false
缩小方法
//两个参数:在每一项调用的参数,作为缩小基础的初始值(可选)//传入的函数接受4个参数:前一个值,当前值,索引值,数组对象。//每一次调用函数返回的值都作为第一个参数传给下一项,从数组第二项开始迭代var values = [1,2,3,4,5];var sum = values.reduce( function(prev,cur,index,array){return prev +cur;});alert(sum);//15//reduceRight()方向相反