为了账号安全,请及时绑定邮箱和手机立即绑定

使用一些标准 ES6 过滤数组

使用一些标准 ES6 过滤数组

慕斯王 2021-07-01 09:11:17
大家好,我想要一些 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);


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信