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和您的尝试?什么不起作用?你保存了我的一天添加到最后一个索引,因为他们的制作是一样的