reduce
数组通过调用reduce函数,作用于每个数组元素,返回一个作用后的结果
//callback:回调函数,最多包含四个参数
//init:初始值,可选
arr1.reduce(callback,init);
callback(prev,cur,index,array)
其中prev是上一个结果值,cur当前数组元素值,index当前元素索引,array数组元素
- 当init为空时,从数组第二个元素开始遍历,prev初始值为array[0],cur初始值为array[1]
- 当init不为空,从数组第一个元素开始遍历,prev初始值为init,cur初始值为array[0]
数组常用方法
concat()
用于将两个数组合并,例如
var a = [1,2,3]
a.concat([4,5,6]) //返回[1,2,3,4,5,6],其中a不变
slice()
切片,array.slice(begin,end),获取数组中begin到end-1的元素
var a = [1,2,3,4,5,6];
a.slice(2,5);//3,4,5,不修改a的值
splice()
剪接,array.splice(begin,num,array2),删除数组中从begin开始处的num个元素,并将array2插入到begin处
var a = [1,2,3,4,5,6];
a.splice(2,3,11,22);//a变为[1,2,11,12,6],返回删除的元素[3,4,5]
sort()
对数组按照从小到大顺序排序。在原数组中进行排序,不生成副本.arrayObject.sort(sortFunc);sortFunc可选,指定排序顺序,接受两个参数;sortFunc(a,b),如果return a-b;返回值小于0,将a排在b之前。
var a = [5,3,7,1,9];
a.sort();//a变为[1,3,5,7,9]
indexOf()
arrayObject.indexOf(ele,fromIndex)查询数组中是否存在ele元素,如果有返回第一次找到的元素索引,没有的话返回-1;fromIndex为可选,表示从哪儿开始查找。
var a = [1,2,3,4,5];
a.indexOf(4);//返回3
a.indexOf(6);//返回-1
join()
arrayObj.join(link),将数组中的元素通过通过link连接起来,link必须为字符串,返回的也是一个字符串,如果数组不是字符,则会先将每个元素转为字符格式,然后再进行连接。
var a = [1,2,3,4,5];
a.join("-");//1-2-3-4-5
reverse()
反转元素,会修改元素
var a = [1,2,3,6,5];
a.reverse();//[5,6,3,2,1]