簡體   English   中英

使用jQuery獲取具有屬性最大值的數組中的元素

[英]Get the element in the array with the max value of a property using jQuery

我有一個自定義JavaScript對象的數組,它有一個名為order的屬性。 我有一個這個對象的數組,我想得到具有最高“順序”的項目。

由於我對jQuery相對較新,並且來自C#背景,這是我非常欣賞LINQ :)的實例之一

無論如何,長話短說,我已經檢查了以下鏈接,但他們只返回值而不是數組元素本身的引用...所以有一點幫助改變它返回元素將不勝感激。

來自元素數組的jQuery min / max屬性

具有來自一組元素的最大高度的元素

有問題的自定義對象(我有一個數組)如下:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM