大家好,我想要一些 ES6 javascript 中的代码来解决这个问题我的数据是一个对象数组,如下所示array = [{ name: "SI", value: 3},{ name: "MI", value: 2},{ name: "SI", value: 7},{ name: "SI", value: 9},{ name: "MI", value: 3}] 只是我想根据具有最高值的名称获取不同的对象,如下所示result = [{ name: "SI", value: 9},{ name: "MI", value: 3}]
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
通过首先减少到中间对象,然后映射该对象的条目,可能是最有效的:
const result = Object.entries(array.reduce((a, {name, value}) => {
a[name] = a[name] && a[name] >= value ? a[name] : value;
return a;
}, {})).map(([name, value]) => ({name, value}));
完整片段:
const array = [{
name: "SI",
value: 3
},
{
name: "MI",
value: 2
},
{
name: "SI",
value: 7
},
{
name: "SI",
value: 9
},
{
name: "MI",
value: 3
}
];
const result = Object.entries(array.reduce((a, {name, value}) => {
a[name] = a[name] && a[name] >= value ? a[name] : value;
return a;
}, {})).map(([name, value]) => ({name, value}));
console.log(result);
添加回答
举报
0/150
提交
取消