Я использую эту функцию для сортировки массива на основе ключа объекта:Сортировка массива по вложенной ключа
function keysrt(arr, key, reverse) {
var sortOrder = 1;
if(reverse){
sortOrder = -1;
}
return arr.sort(function(a, b) {
var x = a[key],
y = b[key];
return sortOrder * ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
}
Это хорошо работает с этим типом массива, где ключ находится на первом уровне:
var a = [
{ id: 0, last: 'Anne'},
{ id: 1, last: 'Odine'},
{ id: 2, last: 'Caroline'}
]
keysrt(a, 'last');
Как я могу заставить его работать с этим примером, где ключ заголовка вложен?
var b = [
{ id: 0, last: 'Anne', data:{title: 'habc'}},
{ id: 1, last: 'Odine', data:{title: 'asdf'}},
{ id: 2, last: 'Prentice', data:{title: 'tzuio'}}
]
keysrt(b, 'title');
Как один указать сортировку на 'title' элемент' data'? –
Точно так же, как автор поставил под вопрос 'keysrt (b, 'title');'. –