【问题标题】:How to group data by one values?如何按一个值对数据进行分组?
【发布时间】:2025-12-05 18:55:02
【问题描述】:

我有数据表,我想按一个值分组,“组 1”和“组 2”。 我怎样才能做到这一点? this is how my table look

我从 json 文件中映射这些数据:

data.properties.map(data =>({key: Math.floor(Math.random()*1234), id: Math.floor(Math.random()*1234), value: data.value, group: data.group, type: data.type, label: data.label, image: data.image}));

然后我把它作为 InitialState 来声明。 如果这还不够,我只是请解释我如何在此代码示例中按组对数据进行分组:

const items = [{ id: 1, group: "Group 1", title: "My Title 1" }, { id: 2, group: "Group 2", title: "My title 2" }, { id: 6, group: "Group 1", title: "Another title 1" }]

你可以做例子或者使用我的数据,没关系,如果我问愚蠢的问题,我很抱歉,谢谢!

【问题讨论】:

  • 请在问题中包含相关内容,而不是代码图片的外部链接。你想要什么样本输出?有很多关于通过属性值对对象进行分组的帖子,你可以谷歌搜索它们。它们不能满足您的需求吗?

标签: reactjs grouping


【解决方案1】:

你可以使用 array.reduce().. 也许这样的东西可以让你开始:

const arr = [
  {
    group: 'Group 1',
    id: 1
  },
  {
    group: 'Group 1',
    id: 2
  },
  {
    group: 'Group 2',
    id: 3
  }
];

const x = arr.reduce(function(acc, cur) {
  const idx = acc.findIndex(el => el.group === cur.group);
  const obj = {
    group: cur.group
  };
  if(idx < 0) {
    obj.children = [];
    obj.children.push(cur);
    acc.push(obj)
  } else {
    acc[idx].children.push(cur);
  }
  
  return acc;
}, []);

console.log(x);

【讨论】:

  • 谢谢,我想这对我很有帮助。我可以问你关于“(acc,cur)”,这些变量被分配到哪里?他们在做什么?
  • @bigmacreact 抱歉,我离开了几天.. acc = 累加器,cur = 当前值.. 在谷歌搜索 javascript 数组 reduce.. :)
  • 谢谢,我可以再问你一个问题吗?如果我要显示子组,我的意思是休息值,如何在商店中启用它?像使用 group.values 还是什么?