以下是一个用 JavaScript 实现对对象数组根据属性值进行分类的方法:

function groupBy(arr, property) {
  return arr.reduce(function(memo, x) {
    if (!memo[x[property]]) { memo[x[property]] = []; }
    memo[x[property]].push(x);
    return memo;
  }, {});
}

这个方法接收两个参数:一个对象数组和一个属性名。它返回一个以该属性名为键,对应值为该属性值的对象数组为值的对象。

例如,假设我们有一个对象数组:

var people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 25 },
  { name: 'Dave', age: 30 }
];

我们可以使用该方法按年龄对人进行分类:

var peopleByAge = groupBy(people, 'age');

// peopleByAge 现在是这样的对象:
// {
//   '25': [
//     { name: 'Alice', age: 25 },
//     { name: 'Charlie', age: 25 }
//   ],
//   '30': [
//     { name: 'Bob', age: 30 },
//     { name: 'Dave', age: 30 }
//   ]
// }

现在我们可以很容易地找到所有年龄为 25 岁的人或 30 岁的人了。

JavaScript 对象数组分类方法:按属性值分组

原文地址: https://www.cveoy.top/t/topic/m067 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录