Sym - 一个用 Java 实现的现代化社区平台 • 源码注册

Pipe - 小而美的开源博客平台 • 体验皮肤
Solo - 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧! • 源码下载
Wide - 一个基于 Web 的 Go 语言 IDE • 教程试用

数组方法 `map()` 和 `forEach()` 有什么区别?

2019-01-18

回答

这两种方法都是对数组中的元素进行迭代。map() 通过每个元素的回调函数将其映射到新的元素上,最终返回一个新的数组。forEach() 虽然也为每一个元素准备了回调函数,但却不返回新的数组。forEach() 在每一次迭代的使用中都会产生副作用,因此 map() 是编程技术中常用的方法。

加分回答

  • 如果你需要迭代一个数组,使其本身发生变化且不需要返回一个新数组时,可以使用 forEach()
  • 如果你只是对数字进行遍历时,也可以使用 forEach()
  • map() 是保持原有数组不变的正确选择,他可以让原始数组的每一个值都映射到新的数组上
  • map() 运行的较快,且返回的新数组可以让你继续使用 map()filter()reduce() 等方法,如:
    const arr = [1, 2, 3, 4, 5];
    const arr1 = arr.map(num => num * 2).filter(num => num > 5);
    console.log(arr); // [1, 2, 3, 4, 5]
    console.log(arr1); // [6, 8, 10]

返回总目录

每天 30 秒


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

6 评论
xflash • 2019-01-18
回复 删除

Java8 Stream 也有这几个接口,现在的编程语言都是差不多,抄抄抄!

Lee981265 • 2019-01-18
回复 删除

map 是 es6 方法,forEach 是 es5 方法

Vanessa • 2019-01-18
回复 删除

连开头都抄连

Vanessa • 2019-01-18
回复 删除

我就说怎么看着 forEach 要熟悉一点

bdFK3000 • 2019-01-31
回复 删除

我都是用 map 多

Vanessa • 2019-01-31
回复 删除

嗯,map 要快一点,不修改数据的时候可以用 forEach