7

我有一个自定义 JavaScript 对象的数组,它有一个名为order. 我有一个这个对象的数组,我想获得具有最高“顺序”的项目。

由于我对 jQuery 比较陌生,并且来自 C# 背景,这是我非常欣赏 LINQ 的实例之一 :)

无论如何,长话短说,我已经检查了以下链接,但它们只返回值,而不是数组元素本身的引用......所以在改变它以返回元素方面提供一点帮助将不胜感激。

来自元素数组的 jQuery 最小/最大属性

一组元素中具有最大高度的元素

有问题的自定义对象(我有一个数组)如下:

var severity = function (key, value, order) {
    this.key = key;
    this.value = value;
    this.order = order;
};
4

5 回答 5

9

也许我误会了你……但你正在寻找吗?

function getHighest(array) {
    var max = {};
    for (var i = 0; i < array.length; i++) {
        if (array[i].order > (max.order || 0))
            max = array[i];
    }
    return max;
}

// var array = [object, object, object ...];
var highest = getHighest(array);

演示:http: //jsfiddle.net/c6gfj/

于 2012-06-05T12:31:20.337 回答
1
array[array.map((o)=>o.order).indexOf(Math.max(...array.map((o)=>o.order)))]

演示:

let array=[{order:3},{order:5},{order:2},{order:2}];

console.log(
  array[array.map((o)=>o.order).indexOf(Math.max(...array.map((o)=>o.order)))]
)

于 2016-08-23T16:51:33.063 回答
0

Sort array and pop the last object in array

function sortObj(a, b){
     return a.order < b.order ? 0 : 1;
}
obj.sort(sortObj)   
var highest =obj.pop();

DEMO: http://jsfiddle.net/VaYNb/

于 2012-06-05T12:55:00.883 回答
0

使用 yourarray.sort()。它将按升序到降序排序。它也适用于二维数组。

于 2012-06-05T13:02:50.693 回答
-1

尝试这个:

function getHighest(array, value){
  return array.sort(function(a,b){ b[value] - a[value] })[0];
}
于 2012-06-05T12:31:07.620 回答