front-end-interview-handbook/packages/quiz/questions/can-you-describe-the-main-d.../zh-CN.mdx

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`就是一个很好的选择。