Javascript 在JS map()方法中,为什么可以';t回调函数参数相互计算?
问题是我无法使用array.prototype.map()方法从数组的元素(数字)中减去数组的每个索引。我原以为减法是有效的,但事实并非如此 代码如下:Javascript 在JS map()方法中,为什么可以';t回调函数参数相互计算?,javascript,arrays,array.prototype.map,Javascript,Arrays,Array.prototype.map,问题是我无法使用array.prototype.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; ret
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'
而没有上面的行,但仍然不起作用。您需要一个映射值的赋值
const
whiteSp=[5,11],
结果=whiteSp.map((ele,i)=>ele-i);
控制台日志(结果)代码>Ciao,您可以尝试以下方法:
让whiteSp=[5,11];
whiteSp=whiteSp.map((ele,i)=>{returnele-i;});
console.log(whiteSp)
(ele,i)=>{return ele-i;}
==(ele,i)=>ele-i
,如您所愿。我更喜欢使用return
语句。它帮助我更快地理解我在map
中所做的事情。当然,这是一个小例子,但一般来说,我在map
函数中编写了一些更复杂的东西。