>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 다른 배열의 순서에 따라 하나의 배열을 정렬하려면 어떻게 해야 합니까?

JavaScript에서 다른 배열의 순서에 따라 하나의 배열을 정렬하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-23 01:18:11510검색

How Can I Sort One Array Based on the Order of Another Array in JavaScript?

보조 값을 기준으로 배열 재배열

JavaScript에서는 다음에서 지정한 순서에 따라 하나의 배열을 정렬해야 하는 시나리오가 있을 수 있습니다. 또 다른 배열. 이는 요소의 순서가 중요한 데이터 구조로 작업할 때 특히 유용할 수 있습니다.

다음 예를 고려하세요.

itemsArray = [
    ['Anne', 'a'],
    ['Bob', 'b'],
    ['Henry', 'b'],
    ['Andrew', 'd'],
    ['Jason', 'c'],
    ['Thomas', 'b']
];
sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ];

이 경우 목표는 itemsArray를 다음으로 재배열하는 것입니다. sortingArr의 순서와 일치합니다. 안타깝게도 요소를 추적할 수 있는 ID가 없으므로 순서를 최대한 일치시키는 것이 우선입니다.

해결책:

이를 달성하려면 다음을 수행하세요. 사용자 정의 비교 기능과 함께 JavaScript의 내장 sort() 메서드를 활용합니다. 비교 함수는 sortingArr의 해당 값을 기준으로 itemsArray의 두 요소를 비교합니다.

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});

이 표현식은 본질적으로 sortingArr에 있는 해당 요소의 해당 인덱스를 기준으로 itemsArray를 정렬합니다. 결과적으로 재배열된 배열은 다음과 유사합니다.

itemsArray = [
    ['Bob', 'b'],
    ['Jason', 'c'],
    ['Henry', 'b'],
    ['Thomas', 'b']
    ['Anne', 'a'],
    ['Andrew', 'd'],
];

이 솔루션은 sortingArr에서 지정한 순서에 우선순위를 부여하고 원하는 배열로 itemsArray를 출력합니다.

위 내용은 JavaScript에서 다른 배열의 순서에 따라 하나의 배열을 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.