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