map() reduce() filter() 与 forEach()

1. map()

  • 遍历元素
  • 不改变原数组arr
  • 返回值为数组
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()

上一篇:leetcode-华为专题-264. 丑数 II


下一篇:WPS表格:统计有效性(即:设为下拉选择框) 及 统计总数