🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

数组方法 `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