数组遍历方法
1.foreach
var arr = [12,34,56,78,90,0 ];
arr.forEach(function (item,index,arr) {
console.log(item);//当前项
console.log(index);//当前项的索引
console.log(arr);//原始数组
})
//没有返回值
//数组中有几项,那么传递进去的匿名回调函数就需要执行几次;
2.map
主要用于对每个数组里面的元素执行相同的函数来创建新的数组
有返回值,可以return出来
map的回调函数中支持return返回值;return的是什么,相当于把数组中的这一项变为什么(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
var arr = [12,34,56,78,90,0 ];
var res = arr.map(function (item,index,arr) {
return item*2
});
console.log(arr);//[12, 34, 56, 78, 90, 0]
console.log(res);//[24, 68, 112, 156, 180, 0]
3.filter
与map方法类似,也是对数组中的每个元素执行相同的函数,将结果组合成一个新数组。
var arr = [12,34,56,78,90,0 ];
var res = arr.filter(function (item) {
return item>50;
});
console.log(arr);//[12, 34, 56, 78, 90, 0]
console.log(res);//[56, 78, 90]
4.some
some()是对数组中每一项运行指定函数,如果数组中有任意一项符合则返回true,否则返回false。
var arr = [12,34,56,78,90,0 ];
console.log(arr.some(function (item) {
return item>50;
})); //true
console.log(arr.some(function (item) {
return item>100;
})) //false
5.every
every()是对数组中的每一项运行给定函数,如果数组中每一项都符合则返回true,否则返回false。
var arr = [12,34,56,78,90,0 ];
console.log(arr.every(function (item) {
return item>50;
})); //false
console.log(arr.every(function (item) {
return item>=0;
})) //true
6.reduce
reduce()
方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
reduce
接受一个函数,函数有四个参数,分别是:初始值或者计算结束后的返回值,当前值,当前值的索引,数组
var arr = [0,1,2,3,4 ];
var res = arr.reduce(function (total, currentValue, currentIndex, arr) {
return total+currentValue;
});
console.log(res);//10
reduce
还有第二个参数,我们可以把这个参数作为第一次调用callback
时的第一个参数
var arr = [0,1,2,3,4 ];
var res = arr.reduce(function (total,currentValue,currentIndex,array) {
return total+currentValue;
},10);
console.log(res); //20