首页 > 解决方案 > JavaScript:从数组中查找总和值最高的对象

问题描述

需要来自 myArray 的具有最大 a+b 值的对象

var myArray = [{a:5,b:10},{a:10,b:7},{a:8,b:5}];

现在我有一些东西可以返回索引:

var max = [], maxIndex;
myArray.map(x=>max.push(x.a + x.b))
maxIndex = max.indexOf( Math.max.apply(Math, max))

到目前为止,我需要返回对象而不是其索引的东西

var maxObject = myArray.map(x=>x.a + x.b).reduce((x,y)=>x>y)

归来false

标签: javascriptarraysobjectarray-map

解决方案


你可以reduce像下面这样使用

var myArray = [{a:5,b:10},{a:10,b:7},{a:8,b:5}];

const finalResult = myArray.reduce((result, obj) => {
  let sum = obj.a + obj.b;
  if(result.sum < sum) {
    return {sum, obj: {...obj}}
  } 
  return result;
}, {sum: 0, obj: {}})

console.log(finalResult.obj)

希望这可以帮助。


推荐阅读