2012-05-31 24 views
3

多維數組我一般張貼我到目前爲止的代碼,但我對這個沒有一個... :(如何排序在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" 
}] 
+2

這不是一個多維數組。它是一組對象。 –

回答

4

校正的位,這不是一個多維陣列中,它是一個對象數組,你很可能混淆了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/

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

Ref

4

分揀機發電機,推廣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'));