Javascript 基于键值合并对象数组

Javascript 基于键值合并对象数组,javascript,ecmascript-6,lodash,Javascript,Ecmascript 6,Lodash,我如何旋转这样一个对象数组 const scores = [ { year: 2020, dave: 20 }, { year: 2020, steve: 17 }, { year: 2019, bill: 18 } ]; 进入这个 const scores = [ { year: 2020, dave: 20, steve: 17 }, { year: 2019, bill: 18 } ]; 我使用and将一个对象的键设置为

我如何旋转这样一个对象数组

const scores = [
{
   year: 2020,
   dave: 20
},
{
   year: 2020,
   steve: 17
},
{
   year: 2019,
   bill: 18
}
];
进入这个

const scores = [
{
   year: 2020,
   dave: 20,
   steve: 17
},
{
   year: 2019,
   bill: 18
}
];
我使用and将一个对象的键设置为“年”,并不断分配对象,然后取出值

const分数=[
{
年份:2020年,
戴夫:20
},
{
年份:2020年,
史蒂夫:17
},
{
年份:2019年,
条例草案:18
}
];
const mergedOb=分数。减少((acc,ob)=>{
如果(根据【目标年】){
分配对象(根据[年度],年度);
}否则{
会计科目[出生年份]=出生年份
}
返回acc;
}, {});
const mergeArr=Object.values(mergedOb)
log(mergeArr)
我使用and使一个对象的键为year,并不断分配对象,后来取出值

const分数=[
{
年份:2020年,
戴夫:20
},
{
年份:2020年,
史蒂夫:17
},
{
年份:2019年,
条例草案:18
}
];
const mergedOb=分数。减少((acc,ob)=>{
如果(根据【目标年】){
分配对象(根据[年度],年度);
}否则{
会计科目[出生年份]=出生年份
}
返回acc;
}, {});
const mergeArr=Object.values(mergedOb)

console.log(mergeArr)
您在找这个吗


$(函数(){
常数分数=[
{
年份:2020年,
戴夫:20
},
{
年份:2020年,
史蒂夫:17
},
{
年份:2019年,
条例草案:18
}
];
var groupBy=函数(xs,键){
返回x.reduce(功能(rv,x){
(rv[x[键]]=rv[x[键]| |[])。按(x);
返回rv;
}, {});
};
log(groupBy(分数,'year'));
})

你在找这个吗


$(函数(){
常数分数=[
{
年份:2020年,
戴夫:20
},
{
年份:2020年,
史蒂夫:17
},
{
年份:2019年,
条例草案:18
}
];
var groupBy=函数(xs,键){
返回x.reduce(功能(rv,x){
(rv[x[键]]=rv[x[键]| |[])。按(x);
返回rv;
}, {});
};
log(groupBy(分数,'year'));
})

您可以使用
.flow()
创建一个函数,该函数使用
.groupBy()
将具有相同
年份的项目收集到阵列,然后映射和合并阵列:

const{flow,groupBy,map,merge}=;;
常数fn=流量(
arr=>groupBy(arr,'年'),
groups=>map(groups,g=>merge({},…g))
);
const得分=[{“年”:2020,“戴夫”:20},{“年”:2020,“史蒂夫”:17},{“年”:2019,“比尔”:18}];
常数结果=fn(分数);
控制台日志(结果)

您可以使用
.flow()
创建一个函数,该函数使用
.groupBy()
将具有相同
年份的项目收集到数组中,然后映射和合并数组:

const{flow,groupBy,map,merge}=;;
常数fn=流量(
arr=>groupBy(arr,'年'),
groups=>map(groups,g=>merge({},…g))
);
const得分=[{“年”:2020,“戴夫”:20},{“年”:2020,“史蒂夫”:17},{“年”:2019,“比尔”:18}];
常数结果=fn(分数);
控制台日志(结果)

也许这有助于GroupBy!我记不起术语了,如果有多个对象具有相同的
年份和相同的键,您可能会丢失一些数据。这可能有助于GroupBy!我记不起术语了,如果有多个对象具有相同的
年份和相同的键,您可能会丢失一些数据。