在下一个函数中使用.reduce()方法(Javascript)
问题描述:
在我使用Javascript中的reduce方法时,我不明白为什么当我使用“current”或“array [index]在我的if语句(在我的降低方法)。在下一个函数中使用.reduce()方法(Javascript)
不是当前和数组[索引]同样的事情?
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)
}
谢谢!!
答
你在这一行是什么意思?
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
+0
没有抱歉,我的意思是:不是当前和阵列[索引]内部可互换if(current + array [i] === arg)?我得到了一个不同的结果,不管我把“current”还是array [index]都是奇怪的,因为对我来说它们都代表着同样的事情。 –
请为数组添加一些数据,并调用函数和你期望得到的。和你有什么。 –
是的,我很抱歉,我的意思是:不是当前和阵列[指数]内部可互换if(current + array [i] === arg)?我得到了一个不同的结果,不管我把“current”还是array [index]都是奇怪的,因为对我来说它们都代表着同样的事情。没有数据的 –
,你期望什么,很难猜测,你想要什么,什么不工作。 –