gpt4 book ai didi

Javascript 检查数组中的重复对象并将值合并到数组中

转载 作者:行者123 更新时间:2023-11-30 08:23:06 24 4
gpt4 key购买 nike

我正在为一个问题而苦苦挣扎。

我有一个对象数组,它看起来像这样:

[
{date_range_one: '2018-03-03+-+2018-05-01'},
{date_range_two: '2001-11-27+-+2018-05-01'},
{filter: '1'},
{filter: '4'},
{filter: '18'},
]

我需要把它转换成这样:

[
{date_range_one: '2018-03-03+-+2018-05-01'},
{date_range_two: '2001-11-27+-+2018-05-01'},
{filter: [1,3,18]},
]

Object.assign 会将过滤器值覆盖为最新的值 ({filter: 18}),但我需要将它们合并到(数组或字符串)中。

有什么方法可以在没有任何 js 库的情况下做到这一点吗?

干杯

最佳答案

您可以使用 map 并呈现收集的值。

它通过使用对象的键和值来工作,并将数组设置为值或值本身。

为了获取对象数组,需要进行映射,其中使用键和值创建对象。

var data = [{ date_range_one: '2018-03-03+-+2018-05-01' }, { date_range_two: '2001-11-27+-+2018-05-01' }, { filter: '1' }, { filter: '4' }, { filter: '18' }],
result = Array.from(
data.reduce((m, o) => {
var [key, value] = Object.entries(o)[0],
item = m.get(key);

return m.set(key, item ? [].concat(item, value) : value);
}, new Map),
([k, v]) => ({ [k]: v })
);

console.log(Array.from(result));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于Javascript 检查数组中的重复对象并将值合并到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50161268/

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