Как сделать сортировку по двум параметрам?

Есть массив объектов:
const arr = [
	{name: 'Альберт', surname: 'Эйнштейн'},
	{name: 'Иван', surname: 'Городецкий'},
	{name: 'Чарльз', surname: 'Ксавье'},
	{name: 'Антон', surname: 'Городецкий'},
	{name: 'Альбус', surname: 'Дамблдор'},
]

Как отсортировать его по фамилии и имени?

В итоге должно получиться:
[
	{name: 'Антон', surname: 'Городецкий'},
	{name: 'Иван', surname: 'Городецкий'},
	{name: 'Альбус', surname: 'Дамблдор'},
	{name: 'Чарльз', surname: 'Ксавье'},
	{name: 'Альберт', surname: 'Эйнштейн'},
]


Пробую сделать через sort так:
arr.sort((a, b) => {
	if (a.surname > b.surname) return 1;
	if (a.surname < b.surname) return -1;
	if (a.name < b.name) return 1;
	if (a.name > b.name) return -1;
	return 0;
});

Такой вариант не работает
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.sort((a, b) => a.surname.localeCompare(b.surname) || a.name.localeCompare(b.name))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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