Метод Array.sort() сортирует элементы массива на месте и возвращает массив. Будьте осторожны с Array.sort(), так как это не Immutable. Для неизменного сортировки используйте immutable-sort.
Этот метод предназначен для сортировки массива с использованием текущего updated_at
в формате ISO. Мы используем new Data(iso_string).getTime()
для преобразования времени ISO в временную метку Unix. Временная метка Unix - это номер, который мы можем выполнить с помощью простой математики.Мы вычитаем первый и второй временные метки, результат; если первая временная метка больше второй, номер возврата будет положительным. Если второе число больше первого, возвращаемое значение будет отрицательным. Если они совпадают, то возврат будет равен нулю. Это отлично подходит для требуемых возвращаемых значений для встроенной функции.
Для ES6:
arr.sort((a,b) => new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime());
Для ES5:
arr.sort(function(a,b){
return new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime();
});
Если вы измените updated_at
быть Unix метки времени вы можете сделать это:
Для ES6:
arr.sort((a,b) => a.updated_at - b.updated_at);
Для ES5:
arr.sort(function(a,b){
return a.updated_at - b.updated_at;
});
Во время этого поста, современные браузеры не поддерживают ES6. Чтобы использовать ES6 в современных браузерах, используйте babel, чтобы перевести код на ES5. Ожидайте поддержку браузера для ES6 в ближайшем будущем.
Array.sort() должен receave возвращаемого значения одного из 3-х возможных исходов:
- положительного числа (первый пункт> второго элемента)
- отрицательного числа (первый пункт < второго пункт)
- 0 если два элемента равны
Обратите внимание, что возвращаемое значение на встроенной функции может быть любым положительным или отрицательным числом. Array.Sort() не волнует, что возвращает номер . Это только заботится, если возвращаемое значение положительное, отрицательное или ноль.
Для неизменяемых вида: (пример ES6)
const sort = require('immutable-sort');
const array = [1, 5, 2, 4, 3];
const sortedArray = sort(array);
Вы также можете написать это так:
import sort from 'immutable-sort';
const array = [1, 5, 2, 4, 3];
const sortedArray = sort(array);
Импорт-с вы видите новый способ включить JavaScript в ES6 и делает ваш код очень чистым. Мой личный фаворит.
Неизбежная сортировка не мутирует исходный массив, а возвращает новый массив. Использование const
рекомендуется по неизменяемым данным.
пользовательские функции: http://stackoverflow.com/questions/777597/sorting-an-associative-array-in-php –
@Topener Эта ссылка выглядит на вопрос о PHP –
моя ошибка .. не читал правильно –