引言
当数组里面元素是对象的时候,如何删选出某属性最大值的元素?
var array=[
{
"id": 52354541,
"name": "比率",
"value": "55"
},
{
"id": 43563123,
"name": "比率",
"value": "88"
},
{
"id": 32525763,
"name": "比率",
"value": "76"
}];
问题一 查找value最大值
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"
}];
array.sort(function(a, b){return a.value < b.value})[0].id ; // 43563123
思路三
array.reduce((p,v) => p.value < v.value ? v : p).id ; // 43563123