在 JS map() 方法中,为什么回调函数参数不能相互计算?



问题是,我无法使用array.protype.map((方法从数组的元素(数字(中减去数组的每个索引。我原以为减法是有效的,但事实并非如此。

这是代码:

const whiteSp = [ 5, 11 ];
whiteSp.map(function (ele, i) {
console.log(ele, i) // 5 0, 11 1
console.log(ele - i) // 5, 10
ele = ele - i;
return ele;
});
console.log(whiteSp) // expected [ 5, 10 ], but got [ 5, 11 ]

第二个console.log表示已经进行了值10的计算,但由于某种原因返回11。

我也尝试过'return ele - i'没有上面的行,但仍然不起作用。

Ciao,您可以尝试这样的方法:

let whiteSp = [ 5, 11 ];
whiteSp = whiteSp.map((ele, i) => { return ele - i; });
console.log(whiteSp)

记住map函数返回一个新数组,所以必须执行whiteSp = whiteSp.map...

您需要一个映射值的赋值。

const
whiteSp = [5, 11],
result = whiteSp.map((ele, i) => ele - i);
console.log(result);