하위 배열 값을 기준으로 JavaScript 정렬 배열

6097 단어 javascript
이제 배열 배열에서 최소값/최대값을 찾는 방법을 살펴보았으므로 한 단계 더 나아가 하위 배열 값을 기준으로 모든 항목을 정렬하는 방법을 살펴보겠습니다.

문제를 스케치하기 위해 다음과 같은 사용자 배열이 있다고 가정해 보겠습니다.

const users = [
  ['Nicole', 31],
  ['Chris', 33],
  ['Sanne', 1],
  ['Yaatree', 2],
];


사용자 배열에는 사용자의 이름과 나이를 나타내는 하위 배열이 포함되어 있습니다.
이제 사용자의 나이를 기준으로 이 배열을 어떻게 정렬할 수 있습니까?

하위 배열 값으로 배열 정렬



이 배열을 정렬하려는 목표를 달성하기 위해 실제로 네이티브sort 메서드를 사용할 수 있습니다.

가장 기본적인 형태로 배열에서 if를 호출할 수 있으며 내용을 기준으로 정렬을 시도합니다.
배열에 문자열이 포함되어 있으면 사전순으로 정렬됩니다.

다음과 같이 표시됩니다.

console.log(['b', 'c', 'a'].sort());

// [ 'a', 'b', 'c' ]


그러나 배열의 배열이 있기 때문에 우리의 경우에는 조금 더 복잡합니다.
정렬을 호출하면 첫 번째 배열 요소를 정렬 방법으로 사용하므로 이름을 기준으로 정렬하게 됩니다.

console.log(users.sort());

// Returns:
// [
//  [ 'Chris', 33 ],
//  [ 'Nicole', 31 ],
//  [ 'Sanne', 1 ],
//  [ 'Yaatree', 2 ]
// ]


이것은 이름을 기준으로 정렬하고 싶지만 연령 값을 기준으로 정렬하려는 경우 유용합니다.

이것은 정렬 방법의 추가 기능이 들어오는 곳입니다.
정렬을 향상시키는 데 사용할 수 있는 인수를 사용할 수 있습니다.

users.sort((a, b) => {
  // Do something with a and b
});


위의 예제 코드는 우리가 사용할 수 있는 구문입니다.
비교를 위해 첫 번째 요소와 두 번째 요소가 필요합니다.

숫자를 기준으로 정렬하기 때문에 숫자를 정렬할 수 있는 빠른 옵션도 제공됩니다.

users.sort((a, b) => {
  return a[1] - b[1];
});

// Returns:
// [
//  [ 'Sanne', 1 ],
//  [ 'Yaatree', 2 ],
//  [ 'Nicole', 31 ],
//  [ 'Chris', 33 ]
// ]


a와 b 비교를 전환하여 순서를 변경할 수도 있습니다.

users.sort((a, b) => {
  return b[1] - a[1];
});

// Returns:
// [
//  [ 'Chris', 33 ],
//  [ 'Nicole', 31 ],
//  [ 'Yaatree', 2 ],
//  [ 'Sanne', 1 ]
// ]


그리고 무엇보다도, 손 정렬 기능으로 작성하여 매우 깔끔하게 만들 수 있습니다.

users.sort((a, b) => a[1] - b[1]));


그리고 그게 다야. 하위 배열 값을 기준으로 배열을 정렬하는 방법을 배웠습니다.

읽어주셔서 감사합니다. 연결합시다!



제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나

좋은 웹페이지 즐겨찾기