javascript - 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
。
解决方案
你可以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)
希望这可以帮助。
推荐阅读
- typescript - 打字稿动态检查值是否属于联合类型
- highcharts - 在我将 stocktools 移动到 highstocks 中的图表顶部后,需要删除图表左侧的空白区域
- android - 导航组件 - 带有深度链接的弹出堆栈行为
- eclipse-cdt - Eclipse CDT 索引器问题:未解决的包含
- django - 使用 DestroyModelMixin 在 Django Rest Framework 中调用 api 端点时不允许删除方法
- django - 使用 POST 方法 django rest api 更改对象的特定字段
- karate - 想要在范围报告中跳过背景网址
- reactjs - @emotion/core 引起的反应图错误
- netty - 使用 Reactor Netty 客户端一次读取大的 JSON 有效负载,而不是分块读取以保持活动的长寿命持久连接
- android - 如何在 Android 中为 staticLayout 添加背景颜色