我如何根据javascript中的值对数组进行分组? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有以下数组

array1 = [{
    category: "Age"
    id: "11"
  },
  {
    category: "Gender"
    id: "M"
  },
  {
    category: "Age"
    id: "23"
  },
  {
    category: "Gender"
    id: "F"
  },
  {
    category: "Education"
    id: "Graduate"
  },
  {
    category: "Age"
    id: "55"
  }
]

我希望这个按类别分组,类似这样

groupedArray = [{
  category: "Age",
  groupedCat: [{
      category: "Age"
      id: "11"
    },
    {
      category: "Age"
      id: "23"
    },
    {
      category: "Age"
      id: "55"
    }
  ],
  category: "Gender",
  groupedCat: [{
      category: "Gender"
      id: "M"
    },
    {
      category: "Gender"
      id: "F"
    }
  ],
  category: "Education",
  groupedCat: [{
    category: "Education"
    id: "Graduate"
  }]
}]
javascript arrays
1个回答
0
投票

你可以这样做:

var array1 = [{
  category: "Age",
  id: "11"
}, {
  category: "Gender",
  id: "M"
}, {
  category: "Age",
  id: "23"
}, {
  category: "Gender",
  id: "F"
}, {
  category: "Education",
  id: "Graduate"
}, {
  category: "Age",
  id: "55"
}];

let res = {};
for (var o of array1) {
  if (res[o.category] === undefined) {
    res[o.category] = [];
  }
  res[o.category].push(o);
}
console.log(res);

请注意,这不是您想要的上述问题,我改为使用category作为对象的关键字。我认为这就是你要找的东西。如果没有发表评论,我可以更新。

希望这可以帮助,

© www.soinside.com 2019 - 2024. All rights reserved.