我知道有很多这样的话题。而且我知道基础知识:.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
to的值undefined
。
如果这是一个愚蠢的问题,我感到很抱歉,但是我是这种语言的新手,到目前为止我发现的答案并不令我满意。
.map
返回一个新数组,而.forEach
什么都不返回。基本上,如果要获取前一个数组的修改形式,请使用.map
,如果不想,请使用.forEach
。