gpt4 book ai didi

javascript - 按字段过滤对象数组

转载 作者:行者123 更新时间:2023-11-28 18:13:46 24 4
gpt4 key购买 nike

我有一个对象数组,每个对象包含两个类别,其中一个类别代表一个组。

[
{
"uuid": 123,
"group": "test_group"
},
{
"uuid": 321,
"group": "test_group"
},
{
"uuid": 432,
"group": "test_group2"
}
]

我希望生成一个 JSON 响应,该响应已按组对它们进行分类。

{
"objects": [
{
"group": "test_group",
"items": [
{
"uuid": 123
},
{
"uuid": 321
}
]
},
{
"group": "test_group2",
"items": [
{
"uuid": 432
}
]
}
]
}

目前,我已经通过首先迭代并创建一组涉及的所有组,然后再次迭代并对它们进行适当分组来完成此任务。我想知道是否有更简洁的方法来做到这一点,也许使用 ES6 中引入的一些新运算符。

最佳答案

使用 Array#reduce 进行迭代,并将项目按组收集到Map中。使用点差来转换Map#values回到数组:

const data = [
{
"uuid": 123,
"group": "test_group"
},
{
"uuid": 321,
"group": "test_group"
},
{
"uuid": 432,
"group": "test_group2"
}
];

const result = [...data.reduce((hash, { uuid, group }) => {
const current = hash.get(group) || { group, items: [] };

current.items.push({ uuid });

return hash.set(group, current);
}, new Map).values()];

console.log(result);

关于javascript - 按字段过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41087213/

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