2014-01-10 39 views
-6

我在JavaScript中的陣列,其看起來像數組排序以JavaScript

變種data_tab = [[1,id_1001],[4,id_1004],[3,id_1003],[2,id_1002] [5,id_1005]]

我希望基於第一值等來對它們進行排序..

1,id_1001

2,id_1002

3,id_1003

4,id_1004

5,id_1005

有什麼辦法,我可以在JavaScript進行排序..

+8

你搜索 「的JavaScript類型的數組」?你測試了一些東西嗎? –

+0

[排序JavaScript對象數組]可能的重複(http://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects) – Martin

+5

嘿人們,不要回答,我們已經有8個答案這個簡單的問題,谷歌即時回答... –

回答

0
data_tab.sort(function(a,b){return a[0]-b[0];}); 
1

嘗試:?

data_tab.sort(function(a, b){ return a[0] - b[0] }) 

DEMO

var data_tab = [[1,'id_1001'],[4,'id_1004'],[3,'id_1003'],[2,'id_1002'],[5,'id_1005']] 
data_tab = data_tab.sort(function(a, b){ return a[0] - b[0] }) 
console.log(data_tab); 

# Give [[1,'id_1001'],[2,'id_1002'],[3,'id_1003'],[4,'id_1004'],[5,'id_1005']] 
+0

忘記添加'返回'。 – ram

2

Array.prototype.sort()

sort()方法排序的陣列的代替和 返回數組中的元素。排序不一定穩定。排序順序默認爲 詞典(不是數字)。

1
console.log(data_tab.sort(function(first, second) { 
    return first[0] - second[0]; 
})); 

輸出

[ [ 1, 'id_1001' ], 
    [ 2, 'id_1002' ], 
    [ 3, 'id_1003' ], 
    [ 4, 'id_1004' ], 
    [ 5, 'id_1005' ] ] 
1
var data_tab = [[1,"id_1001"],[4,"id_1004"],[3,"id_1003"],[2,"id_1002"],[5,"id_1005"]] 

function compare(first,second) { 
    if (first[0] < second[0]) 
    return -1; 
    if (first[0] > second[0]) 
    return 1; 
    return 0; 
} 

data_tab.sort(compare);