首页 > 解决方案 > 如何从 forEach 减少数组

问题描述

我有一系列汽车,每辆汽车都是一个对象,例如:

{
  year: 2006,
  brand: 'Audi',
  model: 'A4',
  color: 'black'
}

我需要将它们组织成一个对象,其中我将拥有品牌的钥匙,并且每个品牌都会有一系列汽车(单个品牌有多个汽车,我不知道我有多少个品牌,我可以' t 对它们进行硬编码)。
所以结果应该是:

const carsObj = {
  Audi: [.....],
  BMW: [.....],
  Toyota: [.....],
  ...
}

这些子阵列中的每一个都应包含同一品牌的所有汽车。我是这样做的:

const carsObj = {};
cars.forEach(car => {
  if (!carsObj[car.brand])  carsObj[car.brand] = [];
  carsObj[car.brand].push(car);
});

所以首先我检查是否没有该品牌的钥匙,我用空数组创建钥匙,然后将整个汽车对象推入其中。

如何使用reduce数组方法做同样的事情?

标签: javascriptarraysecmascript-6

解决方案


推荐阅读