2014-10-24 8 views
1

Как я могу отсортировать массив, содержащий объекты по некоторому свойству, например, name?Как отсортировать массив объектов

Например:

var cart = [ 
    {'name': 'nokie', 'description': ''}, 
    {'name': 'htc', 'description': 'this is htc phone' }, 
    {'name': 'samsung', 'description': ''} 
]; 

должны быть отсортированы по:

var cart = [ 
    {'name': 'htc', 'description': 'this is htc phone' }, 
    {'name': 'nokie', 'description': ''}, 
    {'name': 'samsung', 'description': ''} 
]; 

ответ

2

Вы можете использовать JavaScript, построенный в функции сортировки

пример:

cart.sort(function(a, b){return a.name > b.name}) 

Это будет сортировать это по имени. Это фактически встроенная функция Array. I У вас есть только номера. Вам не нужно вводить функцию внутри, а для массивов объектов. Внутри функции вы можете сделать свои собственные правила сравнения.

2

Все, что вам нужно сравнить name недвижимость с localeCompare методом:

cart.sort(function(a, b) { 
    return b.name.localeCompare(a.name); 
}); 
+0

При редактировании OP я предположил, что они хотели, чтобы сортировать 'name'. Сортировка по описанию будет столь же актуальной, как показано на примере. В любом случае, это незначительная разница. –

+0

@ IngoBürk Спасибо за указание! – dfsq

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