У меня есть JSON, где мне нужно сначала сортировать на основе ключевого «имени», и только если имена совпадают, то сначала сортируйте по «дате» ключа с последней датой. Мои JSON-Сортировка Javascript на основе ключа вложенного массива
var jsonResp=[{
"List": [{
"listName": {
"name": "abc ",
"age": "32 ",
"detailInformation": {
"date": "Nov 12, 2015"
},
},
},
{
"listName": {
"name": "abc ",
"age": "32 ",
"detailInformation": {
"date": "Dec 12, 2016"
},
},
}
}]
Подобно этому, у меня есть три объекта jsonResp массива и каждый объект имеет
Для сортировки выше JSON на основе упомянутого выше требования, я написал JS-
Array.prototype.forEach.call(jsonResp, function(value,key){
var newList = value.List;
if(newList.length > 1){
newList.sort(function(a, b) {
if (a.listName.name==b.listName.name){
return (b.listName.detailInformation.date - a.listName.detailInformation.date);
} else {
return (a.listName.name-b.listName.name);
}
});
}
});
С приведенными выше js, я получаю undefined, а также я не вижу, как сортируется мой массив. Позвольте мне сообщить, где я иду, и как отображать новый отсортированный массив. Большое спасибо. Спасибо заранее! Обратите внимание, что JSON, который я использовал, предназначен только для справки. Просто хотелось убедиться, что я правильно нацеливаю ключи, поскольку встроенная функция сортировки javascript работает только с массивами.
'forEach' не возвращает ничего, что' undefined' – elclanrs
было бы проще, если у вас есть дата в [ISO 8601] (https://en.wikipedia.org/wiki/ISO_8601). –
'sort' мутирует исходный массив, хотя вы уже можете его отсортировать. Вы проверили 'jsonResp' после этого? – elclanrs