JavaScript / Underscore.js - 从嵌套对象中动态减去值
JavaScript / Underscore.js - dynamically subtract values from nested object
考虑以下 JavaScript 对象:
{
"moe": {
"25-34": {
"female": {
"foo": 1747600,
"bar": 0.17625997236482466
},
"male": {
"foo": 1002100,
"bar": 0.10107010660722751
}
},
"18-24": {
"female": {
"foo": 1104200,
"bar": 0.11136773946282867
},
"male": {
"foo": 735800,
"bar": 0.07421154020716296
}
}
},
"larry": {
"18-24": {
"male": {
"foo": 2229400,
"bar": 0.23708698010272988
},
"female": {
"foo": 743800,
"bar": 0.07909989046398605
}
},
"25-34": {
"male": {
"foo": 2092200,
"bar": 0.22249635766167197
},
"female": {
"foo": 852500,
"bar": 0.09065966203354142
}
},
}
我需要从 Larry 中减去 Moe 的每个 "bar" 值,反之亦然 - 这并不重要。每个 "stooge" 节点将始终具有相同的属性,例如18-24、foo、bar 等 然而,子项目(18-24 等)的数量会有所不同,因此不能硬编码。走狗的名字也总是不同的。
谁能告诉我如何将一个对象的条形值动态减去另一个?
更新:总会有 2 个傀儡具有完全相同的子属性。
使用嵌套循环。
var names = Object.keys(json_obj);
var stooge1 = json_obj[names[0]];
var stooge2 = json_obj[names[1]];
for (var age in stooge1) {
for (var gender in stooge1[age]) {
stooge2[age][gender].bar -= stooge1[age][gender].bar;
}
}
考虑以下 JavaScript 对象:
{
"moe": {
"25-34": {
"female": {
"foo": 1747600,
"bar": 0.17625997236482466
},
"male": {
"foo": 1002100,
"bar": 0.10107010660722751
}
},
"18-24": {
"female": {
"foo": 1104200,
"bar": 0.11136773946282867
},
"male": {
"foo": 735800,
"bar": 0.07421154020716296
}
}
},
"larry": {
"18-24": {
"male": {
"foo": 2229400,
"bar": 0.23708698010272988
},
"female": {
"foo": 743800,
"bar": 0.07909989046398605
}
},
"25-34": {
"male": {
"foo": 2092200,
"bar": 0.22249635766167197
},
"female": {
"foo": 852500,
"bar": 0.09065966203354142
}
},
}
我需要从 Larry 中减去 Moe 的每个 "bar" 值,反之亦然 - 这并不重要。每个 "stooge" 节点将始终具有相同的属性,例如18-24、foo、bar 等 然而,子项目(18-24 等)的数量会有所不同,因此不能硬编码。走狗的名字也总是不同的。
谁能告诉我如何将一个对象的条形值动态减去另一个?
更新:总会有 2 个傀儡具有完全相同的子属性。
使用嵌套循环。
var names = Object.keys(json_obj);
var stooge1 = json_obj[names[0]];
var stooge2 = json_obj[names[1]];
for (var age in stooge1) {
for (var gender in stooge1[age]) {
stooge2[age][gender].bar -= stooge1[age][gender].bar;
}
}