객체의 JavaScript 정렬 배열 알파벳순

Ammar Ali 2023년10월12일
  1. JavaScript에서if조건 및sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬
  2. JavaScript에서localeCompare()sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬
  3. JavaScript에서Collator()sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬
객체의 JavaScript 정렬 배열 알파벳순

이 튜토리얼에서는 JavaScript의sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬하는 방법에 대해 설명합니다.

JavaScript에서if조건 및sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬

문자열 또는 정수 배열이있는 경우 JavaScript의sort()함수를 사용하여 쉽게 정렬 할 수 있습니다. 예를 들어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()함수 내부에 함수를 전달하여 각 사람의 성을 비교해야합니다. 첫 번째 사람의 성이 두 번째 사람의 성보다 작 으면 함수는 음수 값이고 더 큰 경우 함수는 양수 값을 반환합니다. 둘 다 같으면 함수는 0을 반환합니다. 아래 코드를 참조하십시오.

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

보시다시피 배열은성에 따라 정렬됩니다. 배열 내부의 개체 수를 늘릴 수도 있습니다. 이름에 따라 배열을 정렬 할 수도 있습니다.

JavaScript에서localeCompare()sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬

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()함수에 대한 자세한 내용은이 링크를 확인하십시오.

JavaScript에서Collator()sort()함수를 사용하여 객체 배열을 알파벳순으로 정렬

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()함수를 사용하여 다른 언어의 문자열을 비교할 수도 있습니다. 해당 언어로 collator 객체를 초기화하기 만하면됩니다. 예를 들어, 위의 코드에서 영어로en을 사용했습니다. Collator()함수에 대한 자세한 내용은이 링크를 확인하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - JavaScript Array