微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript:.forEach() 和 .map() 之间的区别

如何解决JavaScript:.forEach() 和 .map() 之间的区别

它们不是一回事。让我解释一下区别。

forEach:这将遍历一个列表并对每个列表成员应用一些具有副作用的操作(例如:将每个列表项保存到数据库中)并且不返回任何内容

map:这将遍历一个列表,转换该列表的每个成员,并返回另一个与转换后的成员大小相同的列表(例如:将字符串列表转换为大写)。它不会改变调用它的数组(尽管回调函数可能会这样做)。

参考

Array.prototype.forEach() - JavaScript | MDN

Array.prototype.map() - JavaScript | MDN

解决方法

我知道有很多这样的话题。而且我知道基础知识:.forEach()在原始阵列和.map()新阵列上运行。

就我而言:

function practice (i){
    return i+1;
};

var a = [ -1,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,5 ]
=====
[ -1,5 ]
undefined
=====
[ -1,5 ]
[ 0,5,6 ]

我不明白为什么使用topractice的更改值。
如果这是一个愚蠢的问题,我很抱歉,但我对这种语言很陌生,到目前为止我发现的答案并不能让我满意。b``undefined

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。