[英]Get the element in the array with the max value of a property using jQuery
我有一個自定義JavaScript對象的數組,它有一個名為order
的屬性。 我有一個這個對象的數組,我想得到具有最高“順序”的項目。
由於我對jQuery相對較新,並且來自C#背景,這是我非常欣賞LINQ :)的實例之一
無論如何,長話短說,我已經檢查了以下鏈接,但他們只返回值而不是數組元素本身的引用...所以有一點幫助改變它返回元素將不勝感激。
有問題的自定義對象(我有一個數組)如下:
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/
對數組進行排序並彈出數組中的最后一個對象
function sortObj(a, b){
return a.order < b.order ? 0 : 1;
}
obj.sort(sortObj)
var highest =obj.pop();
演示: http : //jsfiddle.net/VaYNb/
使用yourarray.sort()。它將按升序降序排序。對二維數組也有效。
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 getHighest(array, value){
return array.sort(function(a,b){ b[value] - a[value] })[0];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.