一、forEach
循环遍历数组中的每一项,只能遍历数组
没有返回值,返回值为undefined,并且不可链式调用
forEach方法中的function回调有三个参数:
value参数是遍历的数组内容,
index参数是对应的数组索引,
array参数是数组本身
forEach 语法:
array.forEach(function(value,index,array){
//code something
});
二、map
循环遍历数组中的每一项,只能遍历数组
必须return返回值,如果不给return,它会返回一个undefined,返回的值不会影响原数组,可链式调用
map方法中的function回调参数:
currentValue参数是遍历的数组内容,
index参数是对应的数组索引,
arr参数是可选,属于数组对象
thisValue参数是可选,回调的时候使用,传递给函数,可用做this值
forEach 语法:
array.map(function(currentValue,index,arr){
// return something
},thisValue);
三、filter
循环全部的item, 过滤出符合条件的项,组合成新的数组返回
有返回值,可链式调用
filter方法中的function回调参数:
currentValue参数是遍历的数组内容,
index参数是对应的数组索引,
arr参数是可选,属于数组对象
thisValue参数是可选,回调的时候使用,传递给函数,可用做this值
filter语法:
array.filter(function(currentValue,index,arr){
// return something
},thisValue);
四、find
循环item, 返回第一个符合条件的项有返回值
find方法中的function回调参数:
currentValue参数是遍历的数组内容,
index参数是对应的数组索引,
arr参数是可选,属于数组对象
thisValue参数是可选,回调的时候使用,传递给函数,可用做this值
find语法:
array.find(function(currentValue,index,arr){
// return something
},thisValue);
四、reduce
相当于就是个有初始值的for循环,可同时将前面数组项遍历产生的结果与当前遍历项进行运算,这一点是其他迭代方法无法企及的。
prev 必需。累计器累计回调的返回值; 表示上一次调用回调时的返回值,或者初始值 init;
cur 必需。表示当前正在处理的数组元素;
index 可选。表示当前正在处理的数组元素的索引,若提供 init 值,则起始索引为- 0,否则起始索引为1;
arr 可选。表示原数组;
init 可选。表示初始值。
reduce语法:
arr.reduce(function(prev,cur,index,arr){
// code something
}, init);