2017-06-08 16 views
1

に困惑していますが、現在の配列または配列[インデックス]を使用すると、私のif文(私の方法を減らすの内側)に。Javascriptでreduceメソッドを使う次の関数で、.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

はい私は申し訳ありませんが、私は意味しています:currentとarray [index]は内部で互換性がありませんif(current + array [i] === arg)?私は "現在"または配列[インデックス]を置くかどうかにかかわらず私は彼らが両方同じものを表すので、私は別の結果を得る。 –

+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 
+0

いいえ、申し訳ありません:現在の配列と配列[index]は内部で互換性がありませんif(current + array [i] === arg)?私は "現在"または配列[インデックス]を置くかどうかにかかわらず私は彼らが両方同じものを表すので、私は別の結果を得る。 –

関連する問題