arr1과 arr2라는 두 개의 배열이 있다고 가정합니다. arr2의 요소는 별개이며 arr2의 모든 요소는 또한 arr1에 있습니다.
우리는 두 개의 이러한 배열을 취하고 arr1의 요소를 정렬하여 arr1의 항목 순서가 arr2와 동일하도록 JavaScript 함수를 작성해야 합니다. arr2에 나타나지 않는 요소는 끝에 배치해야 합니다. arr1의 오름차순입니다.
예를 들어 - 두 입력 배열이 -
인 경우const arr1 = [2,3,1,3,2,4,6,7,9,2,19]; const arr2 = [2,1,4,3,9,6];
그러면 출력은 다음과 같아야 합니다. -
const output = [2,2,2,1,4,3,3,9,6,7,19];
예시
const arr1 = [2,3,1,3,2,4,6,7,9,2,19]; const arr2 = [2,1,4,3,9,6]; const relativeSortArray = (arr1, arr2) => { const map = new Map(); const len = arr2.length; arr2.forEach((a, i) => { map.set(a, i); }); return arr1.sort((a, b) => { a = map.has(a) ? map.get(a) : len + a; b = map.has(b) ? map.get(b) : len + b; return a - b; }); }; console.log(relativeSortArray(arr1, arr2));
출력
콘솔의 출력은 -
[ 2, 2, 2, 1, 4, 3, 3, 9, 6, 7, 19 ]