猿问

使用一些标准 ES6 过滤数组

大家好,我想要一些 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

}

]


慕斯王
浏览 198回答 2
2回答

吃鸡游戏

通过首先减少到中间对象,然后映射该对象的条目,可能是最有效的: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);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答