JavaScriptで、以下のような形でデータが入った連想配列にて、
同じキーの要素(今回の例では日付)のamountを合算し、
新しい配列を生成しなおすロジックを考えています。
例:元の5件の連想配列
var dataList = [data, data, data, data, data]; 0 : data {id: 100, date: "2018-06-10", amount: 124} 1 : data {id: 105, date: "2018-06-15", amount: 354} 2 : data {id: 120, date: "2018-07-01", amount: 217} 3 : data {id: 129, date: "2018-07-01", amount: 320} 4 : data {id: 131, date: "2018-07-01", amount: 140} 5 : data {id: 183, date: "2018-07-12", amount: 156}
※idは再度採番
※日付が同日のデータをamountを合算して以下の配列を生成
var newDataList = [data, data, data, data]; 0 : data {id: 1, date: "2018-06-10", amount: 124} 1 : data {id: 2, date: "2018-06-15", amount: 354} 2 : data {id: 3, date: "2018-07-01", amount: 677} 4 : data {id: 4, date: "2018-07-12", amount: 156}
filter, mapといったメソッドを使い色々試しているのですが、思い通りにいかず苦戦しています。
ご教授いただけないでしょうか。よろしくお願い致します。
ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
> kei344様 遅くなり申し訳ありません。仰る通り、もう少し自身でトライしその結果コードのどこがどうわからないのか、解決しない場合追記したいと思います。コメントありがとう御座いました。
「新しい配列を生成しなおすロジックを考えています。」と書きながら、ロジックが全く書かれていないのが気になるところですね。
「filter, mapといったメソッドを使い色々試しているのですが、思い通りにいかず苦戦しています。」とありますが、ロジックをどう考えて、filter, map を使おうと思い至ったのでしょう?