Сортировать JSON по дате

Я знаю, что это должно быть относительно просто, но у меня есть набор данных JSON, который я хотел бы сортировать по дате. До сих пор я сталкивался с проблемами на каждом шагу. Прямо сейчас у меня есть дата, которая хранится как this.lastUpdated. У меня есть доступ к jquery, если это помогает, но я понимаю, что .sort() является родным JS. Спасибо заранее.

Ответы

Ответ 1

Предполагая, что у вас есть массив объектов javascript, просто используйте пользовательскую функцию сортировки:

function custom_sort(a, b) {
    return new Date(a.lastUpdated).getTime() - new Date(b.lastUpdated).getTime();
}
var your_array = [
    {lastUpdated: "2010/01/01"},
    {lastUpdated: "2009/01/01"},
    {lastUpdated: "2010/07/01"}
];

your_array.sort(custom_sort);

Метод Array sort сортирует массив, используя функцию обратного вызова, которая передает пары элементов в массиве.

  • Если возвращаемое значение отрицательное, первый аргумент (a в этом случае) будет предшествовать второму аргументу (b) в отсортированном массиве.
  • Если возвращаемое значение равно нулю, их положение относительно друг друга остается неизменным.
  • Если возвращаемое значение положительно, b предшествует a в отсортированном массиве.

Подробнее о методе sort можно прочитать здесь.