@s24344

Как правильно отсортировать массив (native js)?

Здравствуйте. Подскажите, пожалуйста, как правильно сделать следующую фильтрацию. Необходимо отфильтровать массив по свойству name в алфавитном порядке и по свойству value в порядке увеличения. Буду благодарен за помощь.
const arr = [
  {
    id: 1,
    name: 'Alexey',
    value: 100
  },
  {
    id: 2,
    name: 'Yuri',
    value: 400
  },
  {
    id: 3,
    name: 'Ruslan',
    value: 500
  },
  {
    id: 4,
    name: 'Mikhail',
    value: 10000
  }
]
  • Вопрос задан
  • 126 просмотров
Решения вопроса 2
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Судя по описанию Вам нужно не отфильтровать, а отсортировать массив.
У массивов есть встроенный метод для сортировки - https://developer.mozilla.org/ru/docs/Web/JavaScri...

В вашем случае это будет что-то типа:
const compare = (a, b) => {
  if (a === b) return 0;
  return a < b ? -1 : 1;
};
arr.sort((a, b) => {
  return a.name === b.name ? compare(a.value, b.value) : compare(a.name, b.name);
})
Ответ написан
Комментировать
RAX7
@RAX7
arr.sort((a, b) => {
  if (a.name === b.name) return a.value - b.value;
  return (a.name > b.name) ? 1 : -1;
});

https://repl.it/repls/SmoggyCelebratedMicrocode
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы