2017-10-09 4 views
0

だけを返します。reduceをjsで試してみます。私はそれを減らさずにやっていることをたくさん知っていますが、やはり私は考えましたが、ここでは問題があります:コンソールが縮小配列をログに記録するとき、私は最後の減少値しか得ません。コンソールのログを減らすアレイは、最後の値

let dblArray = [ 
    [1, 2, 3], 
    [4, 5, 6] 
] 

let arr = dblArray[0].reduce((newArr, iter, index) => { 
    // this returns 5, 7, 9 as expected 
    return iter + dblArray[1][index] 
}, []) 

console.log(arr) // this returns only 9 

誰かが私にその理由を教えてもらえますか?私の実装が間違っているのだろうかと思います。

おかげ

+0

あなたは 'map'を意味しましたか? 'reduce'は*単一の値を返す*と仮定されています。実際に何をしたいのかわかるように、作業コードを表示することができます。 – Bergi

+0

地図を縮小します。これが作業コード全体です。私は以下の答えを受け入れました;) – Neovea

答えて

1

イテレータ関数から返された値と前の値を上書きすることで作品を減らします。したがって、最後の反復に到達すると、最後の値だけが返されます。

あなたはそれを返し、その後、以前の値と現在の値を結合し、イテレータ関数内のアレイを構築する必要があります:

let dblArray = [ 
    [1, 2, 3], 
    [4, 5, 6] 
] 

let arr = dblArray[0].reduce((previousArray, iter, index) => { 
    // We can use array spread here to join the old array, 
    // and add the new value to it 
    return [...previousArray, iter + dblArray[1][index]]; 
    // On each iteration this would log: 
    // [5] 
    // [5, 7] 
    // [5, 7, 9] 
}, []) 

console.log(arr) 
+0

ありがとう、私は以前の値が上書きされたことを知りませんでした。それは今より明確です:) – Neovea

関連する問題