Одна из вещей, которую вы часто делаете, — это сортировка, а иногда это может быть массив элементов или массив объектов. Сортировка объектов по различным их свойствам может оказаться полезной, независимо от того, на основе каких свойств вы решите сортировать.

Для начала давайте посмотрим на массив объектов с разными свойствами:

Как мы видим, у нас есть массив автомобилей со свойствами «цвет» и «цена». Если мы хотим, чтобы этот массив был отсортирован по цвету, мы можем сделать следующее:

synax: 
   let carsByName = cars.sort((a,b) => (a.color > b.color) ? 1 : -1)

Итак, здесь происходит то, что массив «carsByName» будет использоваться для хранения нового отсортированного массива. Переменные «a» и «b» будут представлять первый и второй элементы, которые будут сравниваться.

«1» и «-1» будут определять, под каким индексом разместить элемент. Если сравнение оценивается как 1, элемент «b» будет отсортирован по индексу ниже, чем «a», но если он оценивается как -1, элемент «a» будет отсортирован по индексу ниже, чем «b».

У нас также есть свойство, которое является целым числом, по которому мы также можем сортировать, синтаксис почти такой же. Давайте взглянем:

syntax:
   let carsByPrice = cars.sort((a,b) => (a.price - b.price))

Когда мы сортируем по целому числу, мы используем очень похожий процесс, как и для имен. Мы также можем отсортировать по убыванию, например:

syntax:
   let carsByPriceDesc = cars.sort((a,b) => (b.price - a.price))

Единственная разница здесь в том, что переменные «a» и «b» меняются местами во второй части функции.

Я надеюсь, что вы найдете это полезным и полезным в следующий раз, когда вам придется сортировать массив объектов с различными типами свойств.