首页 >web前端 >js教程 >如何根据公共属性对数组中的对象进行分组?

如何根据公共属性对数组中的对象进行分组?

DDD
DDD原创
2024-12-23 00:35:26906浏览

How Can I Group Objects in an Array Based on a Common Property?

按公共属性对对象进行分组

问题:

您有一个对象数组,其中每个对象都有一个“组”属性。您想要将此数组转换为一个新数组,其中相似的“组”属性值分组在一起。

所需输出:

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

解决方案:

  1. 创建组名称到空的映射数组:
var group_to_values = {};
  1. 迭代输入数组:
myArray.forEach(function (item) {
    group_to_values[item.group] = group_to_values[item.group] || [];
});
  1. 对于映射中的每个键,使用组名称和数组值:
var groups = [];
for (var key in group_to_values) {
    groups.push({group: key, color: group_to_values[key]})
}
  1. 生成的组数组将按“group”属性进行分组。

以上是如何根据公共属性对数组中的对象进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn