gpt4 book ai didi

javascript - 使用 Underscore 重构对象数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:11 25 4
gpt4 key购买 nike

是否可以重新构造下面的数组

[
{"period":"2016-09-18","mp-demo-1":30},
{"period":"2016-09-18","MP7":20},
{"period":"2016-09-19","mp-demo-1":13},
{"period":"2016-09-19","MP7":33},
{"period":"2016-09-20","mp-demo-1":39},
{"period":"2016-09-20","MP7":29}
]

进入

[
{"period":"2016-09-18","mp-demo-1":30,"MP7":20},
{"period":"2016-09-19","mp-demo-1":13,"MP7":33},
{"period":"2016-09-20","mp-demo-1":39,"MP7":29},
]

我基本上需要的是按键(句点)删除重复条目,并将这些对象中包含的值添加到单个对象中。

这可以使用 underscore.js 实现吗?或者是否有使用 jQuery 或任何其他库执行此操作的另一种方法。

最佳答案

您可以使用带有 reduce()Object.assign() 的纯 javascript 来完成此操作>

var data = [
{"period":"2016-09-18","mp-demo-1":30},
{"period":"2016-09-18","MP7":20},
{"period":"2016-09-19","mp-demo-1":13},
{"period":"2016-09-19","MP7":33},
{"period":"2016-09-20","mp-demo-1":39},
{"period":"2016-09-20","MP7":29}
];

var obj = {}
var result = data.reduce(function(r, o) {
if (!obj[o.period]) {
obj[o.period] = o;
r.push(obj[o.period]);
} else {
Object.assign(obj[o.period], o);
}
return r;
}, []);

console.log(result)

要保留原始数据,您可以使用 Object.assign()

创建对象的克隆

var data = [
{"period":"2016-09-18","mp-demo-1":30},
{"period":"2016-09-18","MP7":20},
{"period":"2016-09-19","mp-demo-1":13},
{"period":"2016-09-19","MP7":33},
{"period":"2016-09-20","mp-demo-1":39},
{"period":"2016-09-20","MP7":29}
];

var obj = {}
var result = data.reduce(function(r, o) {
if (!obj[o.period]) {
obj[o.period] = Object.assign({}, o);
r.push(obj[o.period]);
} else {
Object.assign(obj[o.period], o);
}
return r;
}, []);

console.log(result);
console.log(data);

关于javascript - 使用 Underscore 重构对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722827/

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