Попробуйте использовать внешнюю библиотеку, например подчеркивание
var f = _.compose(_.uniq, function(array) {
return _.sortBy(array, _.identity);
});
var sortedUnique = f(array);
Это зависит от _.compose
, _.uniq
, _.sortBy
, _.identity
Смотрите в прямом эфире пример
Что он делает?
Нам нужна функция, которая принимает массив, а затем возвращает отсортированный массив с удаленными неуникальными записями.Эта функция должна выполнять две вещи: сортировать и делать массив уникальным.
Это хорошая работа для компоновки, поэтому мы собираем вместе уникальную функцию & sort._.uniq
можно просто применить к массиву с одним аргументом, поэтому он просто передается _.compose
функции _.sortBy требуется условный функционал сортировки.он ожидает функцию, которая возвращает значение, и массив будет отсортирован по этому значению.Поскольку значение, по которому мы упорядочиваем его, является значением в массиве, мы можем просто передать функцию _.identity.
Теперь у нас есть композиция функции (которая принимает массив и возвращает уникальный массив) и функции, которая (принимает массив и возвращает отсортированный массив, отсортированный по их значениям).
Мы просто применяем композицию к массиву и получаем наш уникально отсортированный массив.