JS中Map和ForEach的区别

259 阅读1分钟

ForEach

注意,forEach是不会返回有意义的值的。

我们在回调函数中直接修改arr的值。

arr.forEach((num, index) => { return arr[index] = num * 2;});
// arr = [2, 4, 6, 8, 10]

Map

let doubled = arr.map(num => { return num * 2;});
// doubled = [2, 4, 6, 8, 10]

jsPref是一个非常好的网站用来比较不同的JavaScript函数的执行速度

forEach()的执行速度比map()慢了70%

每个人的浏览器的执行结果会不一样

forEach适合于你并不打算改变数据的时候,而只是想用数据做一些事情 – 比如存入数据库或则打印出来。

map()适用于你要改变数据值的时候。不仅仅在于它更快,而且返回一个新的数组。这样的优点在于你可以使用复合(composition)(map(), filter(), reduce()等组合使用)来玩出更多的花样。