2013-10-14 4 views
-8

Я пытаюсь разобраться с несколько dimensionsal массива, который выглядит следующим образом:Сортировка многомерного массива по определенному полю

var test_array = { "214": { "id": "214", "name": "Mike Smith", "salary": 50000 }, 
"336": { "id": "336", "name": "John Doe", "salary": 60000 }, 
"134": { "id": "134", "name": "Jane Doe", "salary": 100000 }, 
"914": { "id": "914", "name": "Bob White", "salary": 25000 } }; 

Я хотел бы сортировать по убыванию по полю заработной платы и функция JQuery приемлема в решение.

+3

Благодарим вас за отправку ваших требований. Теперь отправьте свою попытку ... –

+3

Примечание: это не массив – zerkms

+1

Возможный дубликат http://stackoverflow.com/questions/1129216/sorting-objects-in-an-array-by-a-field-value -in-javascript? rq = 1 – Oriol

ответ

2

Вы не можете отсортировать свой массив , потому что на самом деле это объект вместо массива.

И объекты JS: неупорядоченные коллекции пар имя/значение.

Если вы хотите заказать, используйте массивы вместо объектов, например.

var test_array = [ 
    { "id": "214", "name": "Mike Smith", "salary": 50000 }, 
    { "id": "336", "name": "John Doe", "salary": 60000 }, 
    { "id": "134", "name": "Jane Doe", "salary": 100000 }, 
    { "id": "914", "name": "Bob White", "salary": 25000 } 
]; 
test_array.sort(function(a,b){ 
    if(a.salary < b.salary) return -1; 
    if(a.salary > b.salary) return 1; 
    return 0; 
}); 
+2

@Benjamin Gruenbaum: OP не имеет массива. +1 – zerkms

+0

@Benjamin Gruenbaum: У меня нет никаких сомнений. Это делает этот вопрос просто неполным *, ** NOT ** * неправильным *. – zerkms

+0

@zerkms Это не является неполным. ОП неправильно поняла терминологию. Совершенно ясно, чего он хочет достичь. Он хочет, чтобы его объекты id/name/pay, основанные на зарплате. Какой битв Oriol только что отредактировал в этом ответе. Я удалил свой downvote. –

Смежные вопросы