1.forEach
可以遍历数组、对象,但不支持continue、break关键字,可以使用return来跳出当此循环,相当于continue。
循环数组中每一个元素并采取操作,没有返回值。接收一个函数作为参数,这个函数接收三个参数:当前值、当前位置、整个数组。
arr.forEach((item, index, array)=>{}) 其中item是必须的参数。
2.map
遍历数组中每一个元素,有返回值,返回值是每一次执行的结果组成的新数组。不会改变原数组。接受一个函数作为参数,这个函数接受三个参数:当前值、当前位置、整个数组。
let newArr = arr.map((item, index, array) => {
return item*2;
})
console.log(newArr); //[2,4,6]
console.log(arr); //[1,2,3]
3.filter
过滤数组成员,满足条件的成员组成一个新数组。filter不会改变原数组。
let newArr = arr.filter((item, index, array) => {
return item>1
})
console.log(newArr, arr)//[2,3] [1,2,3]
map和filter的返回值是数组,可以链式使用。
let newArr = arr.map((item) => {
return item*2;
}).filter((item) => {
return item >= 6;
})
console.log(newArr)//[6,8]
4.reduce
reduce依次处理数组的成员,最终累计为一个值
let newArr = arr.reduce((a,b) => {
console.log(a,b);
return a+b;
})
console.log(arr)//[1,2,3,4]
console.log(newArr)//10
// 1 2
// 3 3
// 6 4
//最终结果为10