说一说map 和 forEach 的区别?
map创建新数组、map返回处理后的值、forEach()不修改原数组、forEach()方法返回undefined
标准回答
map 和 forEach 的区别:map有返回值,可以开辟新空间,return出来一个length和原数组一致的数组,即便数组元素是undefined或者是null。forEach默认无返回值,返回结果为undefined,可以通过在函数体内部使用索引修改数组元素。
加分回答
map的处理速度比forEach快,而且返回一个新的数组,方便链式调用其他数组新方法,比如filter、reduce
let arr = [1, 2, 3, 4, 5]; let arr2 = arr.map(value => value * value).filter(value => value > 10); // arr2 = [16, 25]
forEach处理数组
var arr = [1,2,3,4] arr.forEach((value, key) => { return arr[key] = value * value; });
map处理数组
var arr = [1,2,3,4] let list = arr.map(value => { return value * value; });
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
得分点
map创建新数组、map返回处理后的值、forEach()不修改原数组、forEach()方法返回undefined
参考答案
标准回答
map 和 forEach 的区别:map有返回值,可以开辟新空间,return出来一个length和原数组一致的数组,即便数组元素是undefined或者是null。forEach默认无返回值,返回结果为undefined,可以通过在函数体内部使用索引修改数组元素。
加分回答
map的处理速度比forEach快,而且返回一个新的数组,方便链式调用其他数组新方法,比如filter、reduce
延伸阅读
forEach处理数组
map处理数组