gpt4 book ai didi

javascript - 使用对象对数组项进行分组

转载 作者:IT王子 更新时间:2023-10-29 03:04:56 25 4
gpt4 key购买 nike

我的数组是这样的:

myArray = [
{group: "one", color: "red"},
{group: "two", color: "blue"},
{group: "one", color: "green"},
{group: "one", color: "black"}
]

我想把它转换成:

myArray = [
{group: "one", color: ["red", "green", "black"]}
{group: "two", color: ["blue"]}
]

所以,基本上,按 group 分组。

我正在尝试:

for (i in myArray){
var group = myArray[i].group;
//myArray.push(group, {???})
}

我只是不知道如何处理类似组值的分组。

最佳答案

首先创建组名称到值的映射。然后转换成你想要的格式。

var myArray = [
{group: "one", color: "red"},
{group: "two", color: "blue"},
{group: "one", color: "green"},
{group: "one", color: "black"}
];

var group_to_values = myArray.reduce(function (obj, item) {
obj[item.group] = obj[item.group] || [];
obj[item.group].push(item.color);
return obj;
}, {});

var groups = Object.keys(group_to_values).map(function (key) {
return {group: key, color: group_to_values[key]};
});

var pre = document.createElement("pre");
pre.innerHTML = "groups:\n\n" + JSON.stringify(groups, null, 4);
document.body.appendChild(pre);

使用 Array 实例方法,例如 reducemap为您提供强大的高级构造,可以为您节省大量手动循环的痛苦。

关于javascript - 使用对象对数组项进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688459/

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