对.reduce()方法(Javascript)中的某些内容感到困惑
在Javascript中使用reduce方法的下一个函数中,我不明白为什么在if语句(reduce方法内部)中使用“current”或“array[index]时会得到不同的结果 current和array[index]不是一回事吗对.reduce()方法(Javascript)中的某些内容感到困惑,javascript,reduce,Javascript,Reduce,在Javascript中使用reduce方法的下一个函数中,我不明白为什么在if语句(reduce方法内部)中使用“current”或“array[index]时会得到不同的结果 current和array[index]不是一回事吗 function pairwise(arr, arg) { return arr.reduce(function(acc,current, index, array){ for(var i=index+1;i<array.length; i++)
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)
}
函数成对(arr,arg){
返回arr.reduce(函数(acc、current、index、array){
对于(VarI=index+1;i你是指这一行
array[index]=array[i]=NaN;
如果您分配给数组[索引]
,则您正在修改数组。
如果指定给current
,则只会覆盖局部变量current
,但这不会对该值来自的数组产生任何持久影响
let arr = [1, 2, 3],
current = arr[0];
current = 42; // obviously does not modify arr
arr[0] = 42; // obviously modifies arr
请为数组和函数调用添加一些数据,以及您希望得到的数据。以及您得到的数据。是的,我很抱歉,我的意思是:如果(当前+数组[I]==arg),那么当前和数组[index]在if(当前+数组[I]==arg)中不是可以互换的吗?无论我放置“当前”还是数组[index],我都会得到不同的结果这对我来说很奇怪,因为它们都代表相同的东西。没有数据和你期望的很难猜测,你想要什么和什么不起作用。不,对不起,我的意思是:如果(current+array[I]==arg),那么当前和数组[index]在if(current+array[I]==arg)中不是可以互换的吗?无论我放“current”还是数组[index],我都会得到不同的结果这很奇怪,因为对我来说,它们都代表着同一件事。