如何解决lodash 有没有办法合并一组对象?
我一直坚持在 JavaScript 中合并一组对象。我想使用 JS 库或 lodash 将它们合并为一个对象。
我的数组就像
[{
2017: {
a: "100",b: "200"
},2018: {
a: "101",b: "202"
},...
},{
2017: {
a: "300",b: "400"
},2018: {
a: "303",b: "404"
},...
]
我希望我的结果是这样的:
[{
2017: {
a: "400",b: "600"
},2018: {
a: "404",b: "606"
},...
}]
解决方法
像这样:
let res = [
{
2017: {
a: "100",b: "200",},2018: {
a: "101",b: "202",{
2017: {
a: "300",b: "400",2018: {
a: "303",b: "404",].reduce((acc,el) => {
Object.keys(el).forEach(year => {
if(acc[year]){
acc[year]["a"] += parseInt(el[year]['a'])
acc[year]["b"] += parseInt(el[year]['b'])
} else {
acc[year] = {
a: parseInt(el[year]['a']),b: parseInt(el[year]['b'])
}
}
})
return acc;
},{});
console.log(res)
Object.keys
仅当数组中的对象可能有不同的年份时才需要,但如果这些年份始终是 2017 年和 2018 年,则可以将其删除
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。