在我在Javascript中使用reduce方法的下一个函数中,当我在if语句中使用“current”或“array [index](在我的reduce方法中)时,我不明白为什么会得到不同的结果。” / p>
当前和数组[index]不是一回事吗?
function pairwise(arr, arg) {
return arr.reduce(function(acc,current, index, array){
for(var i=index+1;i<array.length; i++){
if(current+array[i]===arg){
acc += index+i;
array[index]=array[i]=NaN;
}
}
return acc;
}, 0)
}
谢谢!
答案 0 :(得分:2)
你的意思是在这一行?
array[index]=array[i]=NaN;
如果您分配到array[index]
,则需要修改数组
如果您指定给current
,则只需覆盖本地变量current
,但这对该值所来自的数组没有任何持久影响。
let arr = [1, 2, 3],
current = arr[0];
current = 42; // obviously does not modify arr
arr[0] = 42; // obviously modifies arr