Javascript 基于序列中的相同值筛选JS数组

Javascript 基于序列中的相同值筛选JS数组,javascript,filter,iteration,Javascript,Filter,Iteration,我有一个这样的数组 const cars = [ {year: "2003", made: "BMW"}, {year: "2004", made: "Honda"}, {year: "2005", made: "BMW"}, {year: "2006", made: "BMW"}, {year: "2006

我有一个这样的数组

const cars = [
  {year: "2003", made: "BMW"},
  {year: "2004", made: "Honda"},
  {year: "2005", made: "BMW"},
  {year: "2006", made: "BMW"},
  {year: "2006", made: "Mercedes"},
  {year: "2007", made: "BMW"},
  {year: "2008", made: "Mercedes"},
  {year: "2009", made: "Mercedes"},
];
预期产出:

const output = [
  [
    {year: "2003", made: "BMW"},
  ],
  [
    {year: "2004", made: "Honda"},
  ],
  [
    {year: "2005", made: "BMW"},
    {year: "2006", made: "BMW"},
  ],
  [
    {year: "2006", made: "Mercedes"},
  ],
  [
    {year: "2007", made: "BMW"},
  ].
  [
    {year: "2008", made: "Mercedes"},
    {year: "2009", made: "Mercedes"},
  ],
];
我希望上述代码片段中的要求已经很清楚了。其主要思想是根据键的匹配值从现有数据创建数组对象或多维数组。在上面的示例中,made键被过滤。

使用reduce并检查上一个made是否等于当前made,然后添加到相同的索引中,或者推到结果中

常数车=[ {年份:'2003',制造:'BMW'}, {年份:'2004',制造:'Honda'}, {年份:'2005',制造:'BMW'}, {年份:'2006',制造:'BMW'}, {年份:'2006',制造:'Mercedes'}, {年份:'2007',制造:'BMW'}, {年份:'2008',制造:'Mercedes'}, {年份:'2009',制造:'Mercedes'}, ]; 设carsResult=[]; cars.reduceprev,curr=>{ 如果当前制造!=先前制造{ carsResult.push[当前] }否则{ carsResult[carsResult.length-1]。pushcurr } 返回货币 }, {}
console.LogCarsResult和您的尝试?什么不起作用?你保存了我的一天添加到最后一个索引,因为他们的制作是一样的