在下一个函数中使用.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) 

    } 

谢谢!!

+0

请为数组添加一些数据,并调用函数和你期望得到的。和你有什么。 –

+0

是的,我很抱歉,我的意思是:不是当前和阵列[指数]内部可互换if(current + array [i] === arg)?我得到了一个不同的结果,不管我把“current”还是array [index]都是奇怪的,因为对我来说它们都代表着同样的事情。没有数据的 –

+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]都是奇怪的,因为对我来说它们都代表着同样的事情。 –