>我有一个自定义JavaScript对象的数组,该数组具有一个名为order
的属性。我有一个这个对象的数组,我想获取具有最高"顺序"的项目。
由于我对jQuery相对较新,并且来自C#背景,这是我高度赞赏LINQ:)的实例之一
无论如何,长话短说,我已经检查了以下链接,但它们只返回值,而不是数组元素本身的引用......因此,在更改它以返回元素方面提供一点帮助将不胜感激。
来自元素数组的 jQuery 最小/最大属性
元素,具有一组元素的最大高度
有问题的自定义对象(我有一个数组)如下:
var severity = function (key, value, order) {
this.key = key;
this.value = value;
this.order = order;
};
也许我弄错了你...但这是你要找的吗?
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/
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)))]
)
对数组进行排序并弹出数组中的最后一个对象
function sortObj(a, b){
return a.order < b.order ? 0 : 1;
}
obj.sort(sortObj)
var highest =obj.pop();
演示:http://jsfiddle.net/VaYNb/
使用yourarray.sort().it将按升序到降序排序。它对二维数组也有效。
试试这个:
function getHighest(array, value){
return array.sort(function(a,b){ b[value] - a[value] })[0];
}