Сортировка массива объектов в JavaScript по алфавиту
-
Сортировка массива объектов в алфавитном порядке с использованием условия
if
и функцииsort()
в JavaScript -
Сортировка массива объектов в алфавитном порядке с помощью функций
localeCompare()
иsort()
в JavaScript -
Сортировка массива объектов в алфавитном порядке с помощью функций
Collator()
иsort()
в JavaScript

В этом руководстве будет обсуждаться сортировка массива объектов по алфавиту с помощью функции sort()
в JavaScript.
Сортировка массива объектов в алфавитном порядке с использованием условия if
и функции sort()
в JavaScript
Если у нас есть массив строк или целых чисел, мы можем легко отсортировать их с помощью функции sort()
в JavaScript. Например, отсортируем массив строк по алфавиту с помощью функции sort()
. См. Код ниже.
var a = ['banana', 'apple', 'orange']
var m = a.sort();
console.log(m);
Выход:
Array(3)
0: "apple"
1: "banana"
2: "orange"
length: 3
Как видите, массив отсортирован по алфавиту, а результат сохраняется в переменной m
. Если у нас есть массив объектов, мы должны использовать некоторые условия перед использованием функции sort()
для сортировки массива. Например, если у нас есть массив объектов, содержащий имя и фамилию некоторых людей, и мы хотим отсортировать массив по фамилии людей. Мы должны передать функцию внутри функции sort()
, которая будет сравнивать фамилию каждого человека, и если фамилия первого человека меньше, чем фамилия второго человека, функция вернет отрицательное значение, а если оно больше, функция вернет положительное значение; и если оба равны, функция вернет ноль. См. Код ниже.
var a = [
{FirsName:"Ellie", LastName:"Williams"},
{FirstName:"Lara", LastName : "Croft"}
];
function SortArray(x, y){
if (x.LastName < y.LastName) {return -1;}
if (x.LastName > y.LastName) {return 1;}
return 0;
}
var s = a.sort(SortArray);
console.log(s);
Выход:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Как видите, массив отсортирован по фамилии. Вы также можете увеличить количество объектов внутри массива. Вы также можете отсортировать массив по имени.
Сортировка массива объектов в алфавитном порядке с помощью функций localeCompare()
и sort()
в JavaScript
Вместо использования условия if
вы также можете использовать функцию localeCompare()
для сравнения строк. Он предоставляет множество других опций для сравнения, которые вы можете установить внутри функции. Например, сравним указанный выше массив объектов с помощью функции localeCompare()
. См. Код ниже.
var a = [
{FirsName:"Ellie", LastName:"Williams"},
{FirstName:"Lara", LastName : "Croft"}
];
function SortArray(x, y){
return x.LastName.localeCompare(y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Выход:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Результат такой же, как и в приведенном выше методе. Вы также можете настроить функцию, чтобы игнорировать любые знаки препинания и специальные символы во время сравнения. Например, если перед фамилией человека стоит знак препинания, функция не сортирует массив. В этом случае мы можем использовать функцию localeCompare()
и настроить ее так, чтобы она игнорировала знаки препинания при сравнении. См. Код ниже.
var a = [
{FirsName:"Ellie", LastName:",Williams"},
{FirstName:"Lara", LastName : "Croft"}
];
function SortArray(x, y){
return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true});
}
var s = a.sort(SortArray);
console.log(s);
Выход:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: ",Williams"}
length: 2
Массив сортируется по фамилии даже при наличии знаков препинания. Вы также можете игнорировать специальные символы, если они присутствуют в строке, установив чувствительность функции localeCompare()
равной base, как показано ниже.
x.LastName.localeCompare(y.LastName, 'en', { sensitivity: 'base' });
Проверьте эту ссылку для получения более подробной информации о функции localeCompare()
.
Сортировка массива объектов в алфавитном порядке с помощью функций Collator()
и sort()
в JavaScript
Вместо использования условия if
вы также можете использовать функцию Collator()
для сравнения строк. Например, сравним указанный выше массив объектов с помощью функции Collator()
. См. Код ниже.
const collator = new Intl.Collator('en');
var a = [
{FirsName:"Ellie", LastName:"Williams"},
{FirstName:"Lara", LastName : "Croft"}
];
function SortArray(x, y){
return collator.compare(x.LastName, y.LastName);
}
var s = a.sort(SortArray);
console.log(s);
Выход:
(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2
Вывод такой же, как и в вышеупомянутых методах. Вы также можете изменить порядок сортировки по убыванию, изменив место двух аргументов в функции collator.compare()
. Вы также можете использовать функцию Collator()
для сравнения строк на другом языке; вам просто нужно инициализировать объект подборщика на этом языке. Например, в приведенном выше коде мы использовали en
для английского языка. Посетите эту ссылку, чтобы узнать больше о функции Collator()
.
Сопутствующая статья - JavaScript Array
- Проверьте, содержит ли массив значение в JavaScript
- Преобразование аргументов в массив в JavaScript
- Удалить последний элемент из массива в JavaScript
- JavaScript выбирает случайное значение из массива
- JavaScript добавляет массив к другому
- Добавить объект в массив в JavaScript