Как отсортировать массив объектов в javascript?

Пользователь

от jerad.kuphal , в категории: JavaScript , 6 месяцев назад

Как отсортировать массив объектов в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от terrence , 5 месяцев назад

@jerad.kuphal 

В JavaScript есть несколько способов сортировки массива объектов:

  1. Метод sort(): Можно использовать встроенный метод sort(), который по умолчанию сортирует элементы в лексикографическом порядке. Однако для сортировки объектов нужно передать функцию сравнения, которая будет определять порядок сортировки на основе определенного свойства объекта. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var arr = [
  { name: 'John', age: 25 },
  { name: 'Alex', age: 30 },
  { name: 'Jane', age: 20 }
];

arr.sort(function(a, b) {
  if(a.name < b.name) { 
    return -1; 
  } else if(a.name > b.name) {
    return 1;
  } else {
    return 0;
  }
});

console.log(arr);


В этом примере массив объектов сортируется по свойству name в алфавитном порядке.

  1. Метод localeCompare(): Можно использовать метод localeCompare() для сортировки по строковым значениям. В этом случае функцию сравнения в методе sort() можно заменить следующим образом:
1
2
3
arr.sort(function(a, b) {
  return a.name.localeCompare(b.name);
});


  1. Метод sort() с map(): Можно использовать метод map() для создания массива значений, по которому будет осуществляться сортировка, а затем применить метод sort(). Например:
1
2
3
arr.sort(function(a, b) {
  return a.age - b.age;
});


В этом примере массив объектов сортируется по возрасту в порядке возрастания.


Это лишь несколько примеров методов сортировки массива объектов в JavaScript. Их можно комбинировать и дополнять в зависимости от конкретной задачи или условий сортировки.