Javascript:何时使用forEach而不是map的具体示例?

时间:2018-06-06 16:18:56

标签: javascript

通过阅读文档和与同事交谈,我对forEach和map之间的差异有了一般性的了解。我发现这个post特别有帮助。在帖子中,他们建议你可能想要使用forEach:

  当您不尝试更改数据时,

forEach()可能更好   在你的数组中,而是想只是用它做一些事情 - 比如   将其保存到数据库或将其注销

其他人可以分享他们故意使用的时间而不是地图吗?

在大多数情况下,地图似乎更可取。

2 个答案:

答案 0 :(得分:0)

foreach()和map()执行2个不同的功能。简言之,将

  • foreach将迭代列表中的每个元素并执行某些操作 用它。
  • 另一方面,
  • 地图转换列表。它迭代了 列表中的每个元素,对列表执行一些操作,以及 返回一个新列表。

这个类似的问题有一些很好的答案:JavaScript: Difference between .forEach() and .map()

答案 1 :(得分:0)

如果要创建包含原始数组元素上某些操作结果的 new 数组,请使用map()。例如:

let nums = [1, 2, 3, 4];
let squares = nums.map(n => n * n);

如果要循环遍历数组,则使用forEach(),但不创建包含结果的新数组。这可能是因为您只想使用数组元素执行其他操作:

nums.forEach(n => console.log(n));

或者您想要有条件地填充数组:

let evenSquares = [];
nums.forEach(n => {
    if (n % 2 == 0) {
        evenSquares.push(n * n);
    }
});

或者您想修改数组中的内容但不需要返回任何新内容:

let objects = [{a: 1}, {a, 2}, {a: 3}];
objects.forEach(obj => obj.a++);