在这里总结下我自己常用的数组遍历(迭代)的方法。
1.every(function(currentValue,index,arr){})方法:将数组的每一项进入给定函数进行运行,如果数组的每一项都返回true,函数最后返回值是true。【currentValue数组中当前元素,index当前元素的索引,arr当前元素属于的数组对象】
var a = [1,2,3,4,5,6];
var b = a.every(function(currentValue,index,arr){
return currentValue > 1;
});
console.log(b)// false
上面代码中,因为a[0] = 1,所以函数执行到a[0]时就判定false,跳出函数,返回值为false。(即只要判false则立刻跳出函数。)
2.some(function(currentValue,index,arr){})方法:将数组的每一项进入给定函数进行运行,如果数组有任一项返回true,函数的最后返回值是true。【currentValue数组中当前元素,index当前元素的索引,arr当前元素属于的数组对象】
var a = [1,2,3,4,5,6];
var b = a.some(function(currentValue,index,arr){
return currentValue > 1;
});
console.log(b)//true
上面代码中,因为执行到a[1] = 2时已经大于1得到一个true,所以函数立刻跳出,返回值为true(即只要判true则立刻跳出函数。)
3.filter(function(currentValue,index,arr){})方法:对数组的每一项进入给定函数进行运行,返回该函数会返回true的项组成的数组。【currentValue数组中当前元素,index当前元素的索引,arr当前元素属于的数组对象】
var a = [1,2,3,4,5,6];
var b = a.filter(function(currentValue,index,arr){
return currentValue > 1;
});
console.log(b)//[2,3,4,5,6]
4.map(function(currentValue,index,arr){})方法:对数组的每一项进入给定函数进行运行,返回函数每次调用的结果所组成的数组。【currentValue数组中当前元素,index当前元素的索引,arr当前元素属于的数组对象】
var a = [1,2,3,4,5,6];
var b = a.map(function(currentValue,index,arr){
return currentValue > 1;
});
console.log(b)//[false,true,true,true,true,true]
上面代码中,将a数组每一项和1比较,大于1返回true,map()方法返回最后比较结果组成的数组
5.forEach(function(currentValue,index,arr){})方法:对数组的每一项进入给定函数进行运行。无返回值
var a = [1,2,3,4,5,6];
var b = a.forEach(function(currentValue,index,arr){
return currentValue > 1;
});
console.log(b)//undefined
因为forEach()没有返回值,所以最后输出b是undefined