私は再帰的に一緒にマージする複数のjavascriptオブジェクトを持っています。 オブジェクトには、マージ時に一緒に追加するいくつかの番号プロパティがあります。 オブジェクトにはまた、いくつかのMapプロパティがあります。ここに私のオブジェクトは、デベロッパーコンソールでどのように見えるかの例です:入れ子になったマップオブジェクトを含むオブジェクトをマージする
byGender:Map
0:{"Male" => 9}
key:"Male"
value:9
1:{"Female" => 11}
key:"Female"
value:11
byType:Map
0:{"Teens" => Object}
key:"Teens"
value:Object
byGender:Map
0:{"Guys" => 7}
key:"Guys"
value:7
1:{"Girls" => 10}
key:"Girls"
value:10
total:17
1:{"Chaperones" => Object}
key:"Chaperones"
value:Object
byGender:Map
0:{"Ladies" => 1}
key:"Ladies"
value:1
1:{"Men" => 2}
key:"Men"
value:2
total:3
total:42
私は一致するキーのすべての数字が一緒に追加されたこれらのMapオブジェクトの値をマージしたいです。
私は_.mergeWithとそのカスタマイザ機能を使用しています。私は首尾よく単純な番号のプロパティをマージすることができますが、私はどのようにマップオブジェクトをマージするのですか?現在、私のカスタマイザの合併機能は、最後のものが勝つようにマップオブジェクトを置き換えるだけです。 はここで、「マップ」のキーワードだけで()の結果.MAPの束を引き上げるために検索するときに、私は答えを見つけるためにそれは難しい_.mergeWith
var merger = function (a, b) {
if (_.isNumber(a)) {
return a + b;
} else {
return _.mergeWith(a, b, merger);
}
};
を使用しています私のカスタマイザー機能ですMapオブジェクトの代わりに使用します。
私はあなたが説明したもののためにjsFiddle https://jsfiddle.net/assvfk2b/5/を作成し、私はあなたが編集してくださいすることができますが、マップのオブジェクトをマージすることにより、何を意味するかわかりませんjsFiddleとあなたに必要なものを教えてください。 – Rahul
私は実際のデータ構造を表示するためにフィドルを更新しました。これは、javascriptでMapオブジェクトを使用します。 – Rastographics