📜  下划线.js | groupBy() 与示例(1)

📅  最后修改于: 2023-12-03 15:21:29.289000             🧑  作者: Mango

JavaScript 中的 groupBy() 方法

在 JavaScript 中,groupBy() 方法主要用于将一个数组按照某个属性分类,生成新的数组。

我们可以使用下划线.js 库中的 groupBy() 方法来实现。

使用示例

下面是一个示例,通过对一组汽车对象进行 groupBy() 分类,对所有汽车按照品牌进行分类:

const _ = require('underscore');

const cars = [
   { make: 'Audi', model: 'A4', year: '2018' },
   { make: 'BMW', model: 'M3', year: '2017' },
   { make: 'Audi', model: 'S5', year: '2019' },
   { make: 'Mercedes', model: 'C350', year: '2018' }
];

const groupedCars = _.groupBy(cars, 'make');

console.log(groupedCars);

返回结果:

{
   Audi: [
      { make: 'Audi', model: 'A4', year: '2018' },
      { make: 'Audi', model: 'S5', year: '2019' }
   ],
   BMW: [ { make: 'BMW', model: 'M3', year: '2017' } ],
   Mercedes: [ { make: 'Mercedes', model: 'C350', year: '2018' } ]
}

在上面的代码中,我们使用了 Underscore.js 库中的 groupBy() 方法,将汽车数组按照品牌进行分类,生成一个新的对象。在该对象中,每个品牌都是一个属性,属性值是一个数组,其中包含了该品牌的汽车对象。

语法和参数

在 JavaScript 中,groupBy() 方法的语法如下:

_.groupBy(list, iteratee, [context])
  • list - 要进行分类的数组。
  • iteratee - 用于指定分类方式的函数或者属性名(字符串类型)。
  • context - 可选。指定 iteratee 函数中 this 的值,如果不指定,则默认为全局对象。

其中:

  • list 参数表示需要被处理的数组。
  • iteratee 可以是一个传入的函数,或者是一个字符串,如果是字符串,则会将其作为每个对象的属性名来进行分类。

以上是 groupBy() 方法的语法和使用方法。

总结

我们学习了在 JavaScript 中使用下划线.js 库的 groupBy() 方法对数组进行分类的示例,以及它的语法和参数的介绍。

groupBy() 方法可以根据指定的属性将数组分组为一个新的对象,该对象包含分组后的所有项的键(属性名)和元素的值(数组形式)。

如果你的项目需要处理数组并且需要按照某个属性进行分类,这个方法将会是非常有用的。