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]
ME!
链滴