1. map()
let brr = [];
let arr = [1, 2, 3]
brr = arr.map(function (item, index, array) {
return 2 * item;
});
console.log(brr); //[1, 2, 3]
console.log(brr); //[2, 4, 6]
});
2. forEach()
- 遍历数组
- 没有返回值(除此之外和map好像没什么区别)
- 不改变原数组
3. reduce()
brr = arr.reduce(function(prev, next, index, array) {
/*执行方式(以arr = [1, 2, 3] 为例):
第1次:prev=1 就取的arr[0]; next=2 就是arr[1]; index=1 就是next的下标; array 就是arr
第2次:prev=3 因为return prev+next 此时的prev就是第一次的prev+next; next=3 就是arr[2];index=2 就是next的下标; array就是arr
第3次(这一次有执行,但不打印):prev=6 第3次prev = 第2次prev+第2次next = 3+3
*/
return prev + next;
});
console.log(brr); // 6 就是第三次的返回值
4. filter() 过滤器
- 遍历元素
- 不改变原数组
- 过滤出数组中满足条件的元素
- 返回值为数组
brr = arr.filter(function (item, index, array) {
return item >= 2; //过滤出大于等于 2 的元素
});
console.log(brr); //[2, 3]
map() reduce() filter() 与 forEach()