いきなり成功したコード
成功コード
let array = [
{id:1, amount:100},
{id:2, amount:200},
{id:3, amount:300}
];
let res = array.reduce((v,cur) => {
return {amount:v.amount + cur.amount}
})
console.log(res) // => Object {amount: 600}
出力確認用
See the Pen reduce by riotam (@riotam4) on CodePen.
さらっと説明
配列の足し算などをしたい場合、reduceはとても使い勝手が良い。
しかし、
配列の中にオブジェクト
let array = [
{id:1, amount:100},
{id:2, amount:200},
{id:3, amount:300}
];
このような配列の場合、reduceの書き方にひと工夫がいる。
ずばり、returnはオブジェクトで返す!
オブジェクトでreturnする
return { key : v.key + cur.key }
すこしわかりにくい書き方だが、こうなります。
成功したコードと併せて読んでみると、わかりやすいかと思います。
以上です。
さらっとですが、最後までありがとうございました。
ちなみに
オブジェクトではなく、合計した値だけを取りたい場合(サンプルコードでいうところの、600だけを取りたい場合)は、
値だけ取りたい場合
console.log(res.amount) // => 600
こうすると取れます。