使用对象对数组项目进行分组
处理包含对象的数组时,根据公共属性对项目进行分组可能很有用。这可以通过创建组名称到关联值的映射来实现。
假设您有一个如下所示的数组:
myArray = [ {group: "one", color: "red"}, {group: "two", color: "blue"}, {group: "one", color: "green"}, {group: "one", color: "black"} ]
您希望将其转换为一个新数组,其中项目按“group”属性分组:
myArray = [ {group: "one", color: ["red", "green", "black"]}, {group: "two", color: ["blue"]} ]
要实现此目的,您可以使用以下内容步骤:
这里是一个示例 JavaScript实现:
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]}; });
执行后,此代码将生成所需的分组数组:
groups: { "one": [ "red", "green", "black" ], "two": [ "blue" ] }
以上是如何在 JavaScript 中按公共属性对数组项进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!