38 lines
1016 B
Plaintext
38 lines
1016 B
Plaintext
---
|
|
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`就是一个很好的选择。
|