JavaScript forEach和map有何不同_如何选择?

admin 百科 10
forEach用于执行副作用操作并返回undefined,map用于转换数据并返回新数组;需过程选forEach,要结果选map。

JavaScript forEach和map有何不同_如何选择?-第1张图片-佛山资讯网

forEach 用来执行操作,map 用来生成新数组;选哪个,取决于你想要“做事情”还是“要结果”。

用途不同:副作用 vs 返回值

forEach 的设计目的就是遍历并执行回调,它不关心返回值,也不会返回新数组(返回 undefined)。适合发请求、改 DOM、打印日志这类有副作用的操作。

  • data.forEach(item => console.log(item.name))
  • items.forEach(el => el.classList.add('active'))

map 的核心是转换数据:对每个元素调用函数,把返回值收集起来,组成一个等长的新数组。它不修改原数组,也不做副作用操作。

  • const names = users.map(u => u.name)
  • const doubled = nums.map(n => n * 2)

返回值决定能否链式调用

map 返回数组,所以可以接 filter、sort、reduce 等方法:

立即学习“Java免费学习笔记(深入)”;

  • arr.map(x => x * 2).filter(x => x > 10).reduce((a, b) => a + b)

forEach 返回 undefined,链式调用会报错:

标签: javascript java ssl red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~