--- title: 你能描述一个 `.forEach` 循环和 `.map()` 循环之间的主要差异吗? subtitle: 这两者你会如何选择? --- 为了理解两者之间的差异,让我们看看每个函数做什么。 ## `forEach` - 通过数组中的元素进行迭代。 - 对每个元素执行回调。 - 不返回值。 ```js const a = [1, 2, 3]; const doubled = a.forEach((num, index) => { // 使用 num 和 index 做点什么 }); // doubled = undefined ``` ## `map` - 通过数组中的元素进行迭代。 - 通过在每个元素上调用函数,将每个元素 "映射 "到一个新的元素上,并作为结果创建一个新的数组。 ```js const a = [1, 2, 3]; const doubled = a.map((num) => { return num * 2; }); // doubled = [2, 4, 6] ``` `.forEach` 和 `.map()` 之间的主要区别是`.map()` 返回一个新数组。 如果你需要结果,但不想改变原始数组,`.map()`是一个明确的选择。 如果你只需遍历一个数组,`forEach`就是一个很好的选择。