Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 다른 배열에 따라 배열 정렬

<시간/>

다음과 같은 두 개의 리터럴 배열이 있다고 가정합니다. -

const arr1 = [1, 3, 2, 4, 5, 6];
const arr2 = [1, 2, 5];

우리는 그러한 두 개의 배열을 취하는 JavaScript 함수를 작성해야 합니다. 그러면 우리의 함수는 rr1의 모든 요소를 ​​포함하지만 rr2에 따라 정렬된 새 배열을 반환해야 합니다.

두 배열에 모두 나타나는 요소와 마찬가지로 두 번째 배열의 순서에 따라 먼저 나타나고 순서를 유지하는 첫 번째 배열에만 있는 요소가 뒤에 와야 합니다.

예시

이에 대한 코드는 -

const arr1 = [1, 3, 2, 4, 5, 6];
const arr2 = [1, 2, 5];
const sortByReference = (arr1, arr2) => {
   const inBoth = el => arr1.indexOf(el) !== -1 && arr2.indexOf(el) !== -1;
   const sorter = (a, b) => {
      if(inBoth(a) && inBoth(b)){
         return arr1.indexOf(a) - arr2.indexOf(b);
      }
      if(inBoth(a)){
         return -1;
      };
      if(inBoth(b)){
         return 1;
      };
      return 0;
   };
   arr1.sort(sorter);
};
sortByReference(arr1, arr2);
console.log(arr1);

출력

콘솔의 출력 -

[ 1, 2, 5, 3, 4, 6 ]