我知道有很多这样的话题。而且我知道基础知识:.forEach()既可以在原始阵列.map()上运行,也可以在新阵列上运行。
就我而言:
function practice (i){ return i+1; };
var a = [ -1, 0, 1, 2, 3, 4, 5 ]; var b = [ 0 ]; var c = [ 0 ]; console.log(a); b = a.forEach(practice); console.log("====="); console.log(a); console.log(b); c = a.map(practice); console.log("====="); console.log(a); console.log(c); 这是输出:
[ -1, 0, 1, 2, 3, 4, 5 ] [ 0, 1, 2, 3, 4, 5, 6 ] 我不明白为什么要使用practice更改bto的值undefined。 如果这是一个愚蠢的问题,我感到很抱歉,但是我是这种语言的新手,到目前为止我发现的答案并不令我满意。 问题来源于stack overflow
他们是不一样的。让我解释一下区别。
forEach:这会遍历列表,并对每个列表成员应用一些有副作用的操作(例如:将每个列表项保存到数据库)
map:这会遍历一个列表,转换该列表的每个成员,然后返回与转换后的成员大小相同的另一个列表(例如:将字符串列表转换为大写)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。