案例:JS 使用 reduce 方法 进行 数组对象分类

使用 reduce 方法可以快速实现按属性分类的操作,比使用循环迭代要更高效。以下是一个简单示例代码:

const arr = [
  {
    
     id: 1, name: 'A' },
  {
    
     id: 2, name: 'B' },
  {
    
     id: 3, name: 'A' },
  {
    
     id: 4, name: 'C' },
  {
    
     id: 5, name: 'B' },
];

const result = arr.reduce((acc, item) => {
    
    
  const key = item.name;
  if (!acc[key]) {
    
    
    acc[key] = [];
  }
  acc[key].push(item);
  return acc;
}, {
    
    });

console.log(result);
/* 
{
  A: [{ id: 1, name: 'A' }, { id: 3, name: 'A' }],
  B: [{ id: 2, name: 'B' }, { id: 5, name: 'B' }],
  C: [{ id: 4, name: 'C' }]
} 
*/
console.log(Object.entries(result));

在这个示例中,使用 reduce 方法对数组进行迭代,将每个元素的 name 属性作为 key,将对应的元素添加到以 key 命名的数组中,并且最终返回一个以属性值作为键的对象。
最后通过Object.entries()方法将result转换成二维数组并输出。

猜你喜欢

转载自blog.csdn.net/m0_37577465/article/details/130420592