0
我有多個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
我想合併這些地圖的值對象,因此匹配關鍵字的所有數字相加。
我正在使用_.mergeWith及其定製器功能。我可以成功地合併簡單數字屬性,但我如何合併Map對象呢?現在我的定製器合併函數正在替換Map對象,因此最後一個獲勝。 這裏是我使用的是_.mergeWith
var merger = function (a, b) {
if (_.isNumber(a)) {
return a + b;
} else {
return _.mergeWith(a, b, merger);
}
};
這是很難找到答案,因爲搜索的「地圖」關鍵字剛拉起一串.MAP()的結果時,我的定製功能,而不是Map對象。
我創建了一個的jsfiddle https://jsfiddle.net/assvfk2b/5/爲你解釋什麼,但我通過合併地圖對象,你可以請編輯我不知道你是什麼意思jsFiddle,告訴我你到底需要什麼。 – Rahul
我更新了小提琴,以顯示我正在使用的實際數據結構。它利用JavaScript中的Map對象。 – Rastographics