2014-01-10 5 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 ответов на этот простой вопрос, который Google мгновенно отвечает в любом случае ... –

ответ

1

Try:

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

Забыл добавить 'return'. – 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); 
Смежные вопросы