gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:45:24 24 4
gpt4 key购买 nike

我知道有很多这样的话题。我知道基础知识:.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 ]
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
undefined
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
[ 0, 1, 2, 3, 4, 5, 6 ]

我无法理解为什么使用 practice 会将 b 的值更改为 undefined
如果这是一个愚蠢的问题,我很抱歉,但我对这门语言还很陌生,到目前为止我找到的答案并不令我满意。

最佳答案

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

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

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

引用资料

Array.prototype.forEach() - JavaScript | MDN

Array.prototype.map() - JavaScript | MDN

关于JavaScript:.forEach() 和 .map() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com