admin管理员组文章数量:1435859
I use lodash in my project. I have a JSON
{ arcade: {
sam: {
played: 10,
wins: 5,
lose: 5
},
adam: {
played: 10,
wins: 5,
lose: 5
},
}
pvp: {
sam: {
played: 10,
wins: 5,
lose: 5
},
adam: {
played: 10,
wins: 5,
lose: 5
},
}
}
I would like to receive as a result of JSON
{
arcade: {
played: 20,
wins: 10,
lose: 10
},
pvp: {
played: 20,
wins: 10,
lose: 10
},
}
how to calculate the sum of values child objects with js/lodash? Thanks.
I use lodash in my project. I have a JSON
{ arcade: {
sam: {
played: 10,
wins: 5,
lose: 5
},
adam: {
played: 10,
wins: 5,
lose: 5
},
}
pvp: {
sam: {
played: 10,
wins: 5,
lose: 5
},
adam: {
played: 10,
wins: 5,
lose: 5
},
}
}
I would like to receive as a result of JSON
{
arcade: {
played: 20,
wins: 10,
lose: 10
},
pvp: {
played: 20,
wins: 10,
lose: 10
},
}
how to calculate the sum of values child objects with js/lodash? Thanks.
Share Improve this question asked Jan 13, 2015 at 9:41 aleksey080aleksey080 1874 silver badges13 bronze badges 1- Do you know how to iterate over objects? – Ja͢ck Commented Jan 13, 2015 at 9:44
1 Answer
Reset to default 2http://jsfiddle/efmmh8ok/
I would use reduce
function (lodash doc)
_.reduce(ori, function (ori1, data1, c) {
ori1[c] = _.reduce(data1, function (ori2, data2) {
_.each(data2, function (value, key) {
ori2[key] = ori2[key] || 0; // if it undefined yet put number 0
ori2[key] += value; // sum with the previous value
});
return ori2; // the populated data {played: 20, wins: 10, lose: 10}
}, ori1[c] || {});
return ori1; // the populated data {pvp: {played: 20, wins: 10, lose: 10}}
}, {});
本文标签: javascriptSum properties child objects with lodashStack Overflow
版权声明:本文标题:javascript - Sum properties child objects with lodash - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745674463a2669768.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论