forEach、map、filter、every、some五个常用的数组方法,用于处理数组中子项
1.forEach()方法用于调用数组的每个元素,并将元素传递给回调函数
array.forEach(function(currentValue, index, arr), thisValue)
参数描述:
currentValue:必需,当前元素
index:可选,当前元素的索引值
arr:可选,当前元素所属的数组对象
forEach()只是遍历一次数组,不会去修改原数组,例如
var arr = [1,2,3,4,5];
arr.forEach(function(item){
item += 1;
})
console.log(arr); // [1,2,3,4,5]
尝试去通过item去把arr每一项增加1,但是执行没有生效
不过可以通过索引的方式去改变原数组
var arr = [1,2,3,4,5];
arr.forEach(function(item,index){
arr[index] += 1;
})
console.log(arr); // [2,3,4,5,6]
2.map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
array.map(function(currentValue, index, arr), thisValue)
我们还是尝试修改arr每一项增加1,并返回修改后的数组,注意要用return关键字返回每一项
var arr = [1,2,3,4,5];
var arr2 = arr.map(function(item){
return item += 1;
})
console.log(arr); // [1,2,3,4,5]
console.log(arr2);// [2,3,4,5,6]
3.filter()方法创建一个新的数组,新数组中的元素是原始数组通过检查返回值为true的项
array.filter(function(currentValue, index, arr), thisValue)
var arr = [1,2,3,4,5,6,7,8];
var arr2 = arr.filter(function (item) {
return item > 4;
});
console.log(arr); // [1,2,3,4,5,6,7,8]
console.log(arr2);// [5,6,7,8]
4.every()方法用于检测数组所有元素是否都符合指定条件,如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余元素不会再进行检测;如果所有元素都满足条件,则返回true
array.every(function(currentValue, index, arr), thisValue)
5.some()方法用于检测数组中是否有元素满足指定条件(函数),如果有一个元素满足条件,则表达式返回true,剩余元素不再执行检测;如果没有满足条件的元素,则返回false
array.some(function(currentValue, index, arr), thisValue)