gpt4 book ai didi

javascript - typescript 通过将具有相同键的对象的值组合来合并 2 个对象数组

转载 作者:行者123 更新时间:2023-11-28 14:29:11 26 4
gpt4 key购买 nike

是否有正确的方法来合并两个由具有相同(尽管不完全)键和相应数值的对象组成的数组?

因此,我需要一个包含对象总和的数组,其中组合了相同键的值。键是日期 (Date())。每个日期都有对应的编号。

示例:

const series_0 = [
{
'value': 3000,
'name': '2016-09-20T20:23:48.426Z'
},
{
'value': 6000,
'name': '2016-09-21T08:58:04.100Z'
},
{
'value': 4000,
'name': '2016-09-21T05:21:08.317Z'
},
{
'value': 6000,
'name': '2016-09-19T11:26:36.302Z'
},
{
'value': 5000,
'name': '2016-09-16T11:26:19.165Z'
}
]

const series_1 = [
{
'value': 3000,
'name': '2016-09-20T20:23:48.426Z'
},
{
'value': 1500,
'name': '2016-09-21T08:58:04.100Z'
},
{
'value': 8000,
'name': '2016-09-19T11:26:36.302Z'
},
]

期望结果:

let result = [
{
'value': 6000,
'name': '2016-09-20T20:23:48.426Z'
},
{
'value': 7500,
'name': '2016-09-21T08:58:04.100Z'
},
{
'value': 4000,
'name': '2016-09-21T05:21:08.317Z'
},
{
'value': 6000,
'name': '2016-09-19T11:26:36.302Z'
},
{
'value': 13000,
'name': '2016-09-16T11:26:19.165Z'
}
]

谢谢!

最佳答案

可能有很多方法可以实现这一目标,这是我的方法:

const series_0 = [{
'value': 3000,
'name': '2016-09-20T20:23:48.426Z'
}, {
'value': 6000,
'name': '2016-09-21T08:58:04.100Z'
}, {
'value': 4000,
'name': '2016-09-21T05:21:08.317Z'
}, {
'value': 6000,
'name': '2016-09-19T11:26:36.302Z'
}, {
'value': 5000,
'name': '2016-09-16T11:26:19.165Z'
}]

const series_1 = [{
'value': 3000,
'name': '2016-09-20T20:23:48.426Z'
}, {
'value': 1500,
'name': '2016-09-21T08:58:04.100Z'
}, {
'value': 8000,
'name': '2016-09-19T11:26:36.302Z'
}, ]


//make sure the longer array is the outer for-loop-variable
const s0 = series_0.length >= series_1.length ? series_0 : series_1;
const s1 = series_0.length >= series_1.length ? series_1 : series_0;

let res = [];

for (const s of s0) {
let resObj = {name: s.name, value: s.value};
for (const t of s1) {
if (s.name === t.name) {
resObj.value+=t.value
}
}
res.push(resObj);
}

console.log(res);

关于javascript - typescript 通过将具有相同键的对象的值组合来合并 2 个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52123037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com