簡體   English   中英

如何在JavaScript中對多維數組進行排序

[英]How to sort a multidimensional array in JavaScript

我通常發布我到目前為止的代碼,但我對此沒什么... :(

我將如何重新排序以下數組,以便我可以將其基於'百分比'鍵中的值,從低到高還是從高到低?

var data = [{
    "id": "q1",
    "question": "blah blah blah",
    "percentage": "32"
}, {
    "id": "q2",
    "question": "blah blah blah",
    "percentage": "23"
}, {
    "id": "q3",
    "question": "blah blah blah",
    "percentage": "11"
}, {
    "id": "q4",
    "question": "blah blah blah",
    "percentage": "3"
}, {
    "id": "q5",
    "question": "blah blah blah",
    "percentage": "6"
}]

一點修正,它不是一個多維數組,它是一個對象數組,你很可能混淆了PHP的命名,對於你的問題,使用sort的可選函數參數來定義你自己的排序順序。

data.sort(function(a, b) {
   return a.percentage - b.percentage;
})

// sorted data, no need to do data = data.sort(...);

http://jsfiddle.net/cEfRd/

分揀機生成器,概括https://stackoverflow.com/users/135448/siganteng答案,以便它適用於任何屬性

function  createSorter(propName) {
    return function (a,b) {
        // The following won't work for strings
        // return a[propName] - b[propName];
        var aVal = a[propName], bVal = b[propName] ;
        return aVal > bVal ? 1 : (aVal < bVal ?  - 1 : 0);

    };
}
data.sort(createSorter('percentage'));
data.sort(function(a,b){return a.percentage - b.percentage});

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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