2014-02-03 9 views
1
var items = [ 
    { 
     "id": 376, 
     "name": "b" 
    }, 
    { 
     "id": 253, 
     "name": "f" 
    }, 
    { 
     "id": 236, 
     "name": "c" 
    }, 
    { 
     "id": 235, 
     "name": "e" 
    }, 
    { 
     "id": 165, 
     "name": "a" 
    }, 
    { 
     "id": 26, 
     "name": "d" 
    }, 
    { 
     "id": 24, 
     "name": "d" 
    } 
] 

Как я могу отсортировать массив по имени?Как отсортировать многомерный массив по имени

+0

Это не многомерный массив , Это массив объектов. –

ответ

1

Поскольку вы используете строки попробовать

items.sort(function (o1, o2) { 
    return o1.name.localeCompare(o2.name) 
}); 
console.log(items) 
0

Там хороший пример сортировки по ключевым here.

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

items.sort(function(a, b){ 
    var keyA = new Date(a.name), 
    keyB = new Date(b.name); 
    // Compare the 2 dates 
    if(keyA < keyB) return -1; 
    if(keyA > keyB) return 1; 
    return 0; 
}); 
+2

Итак, в чем смысл копировать-вставить, а не как дублировать? –

+3

Если бы это был я, я бы предпочел, чтобы ответ был прав под вопросом, который я задал. также я изменил имя ключа из этого вопроса. так что расслабьтесь. – aquemini

0

Это массив объектов. Вам нужно будет написать свою собственную функцию сравнения.

function compare(a,b) { 
    if (a.name < b.name) 
    { 
     return -1; 
    } 
    if (a.name > b.name) 
    { 
     return 1; 
    } 

    return 0; 
} 

Затем сортировать его следующим образом:

items.sort(compare); 
0

Здесь вы идете:

function byName(a, b){ 
    var nameA = a.name.toLowerCase(); 
    var nameB = b.name.toLowerCase(); 
    return ((nameA < nameB) ? -1 : ((nameA > nameB) ? 1 : 0)); 
} 

array.sort(byName); 

Подробнее о .sort()

0

вы можете использовать этот простой код:

myarray.sort(function(a, b){ 
    var keyA = new Date(a.updated_at), 
    keyB = new Date(b.updated_at); 
    // Compare dates 
    if(keyA < keyB) return -1; 
    if(keyA > keyB) return 1; 
    return 0; 
}); 
0

это может работать

function SortByName(a, b){ 
    var aName = a.id; 
    var bName = b.id; 
    return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0)); 
} 

items.sort(SortByName) 
Смежные вопросы