H5W3
当前位置:H5W3 > 问答 > 正文

【java】查找对象数组中某属性的最大值, 然后返回该项的其他属性值

有一个数组,里面装的都是对象.
var array=[
{
"id": 52354541,
"name": "比率",
"value": "55"
},
{
"id": 43563123,
"name": "比率",
"value": "88"
},
{
"id": 32525763,
"name": "比率",
"value": "76"
}];

如果是查找最大值 可以直接
Math.max.apply(Math, array.map(function(item) {return item.value})) // 88
但现在我想返回值不是value, 是id的话 该怎么修改这代码.


我现在用的代码是, 怎样写会更好呢??

          let max = 0;
let maxId = '';
res.data.map(item => {
if(item.orgAccumulative > max) {
max = item.orgAccumulative;
maxId = item.id;
}
});

回答

可以先排序(从大到小排),然后取第一个对象

var array=[
  {
    "id": 52354541,
    "name": "比率",
    "value": "55"
},
{
    "id": 43563123,
    "name": "比率比率",
    "value": "88"
},
{
    "id": 32525763,
    "name": "满意比率",
    "value": "76"
}];
console.log(array.sort(function(a, b){return a.value < b.value})[0].id) // 43563123
array.reduce((p,v) => p.value < v.value ? v : p).id

Math.max.apply(Math, array.map(function(item) {return item.id}))

本文地址:H5W3 » 【java】查找对象数组中某属性的最大值, 然后返回该项的其他属性值

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址