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

JavaScript에서 배열의 인덱스로 정렬

<시간/>

다음과 같은 객체 배열이 있다고 가정합니다. -

const arr = [
   {
      'name' : 'd',
      'index' : 3
   },
   {
      'name' : 'c',
      'index' : 2
   },
   {
      'name' : 'a',
      'index' : 0
   },
   {
      'name' : 'b',
      'index' : 1
   }
];

이러한 배열을 취하는 JavaScript 함수를 작성해야 합니다.

함수는 개체의 인덱스 속성에 따라 이 배열을 오름차순으로 정렬해야 합니다.

그런 다음 함수는 정렬된 배열을 각 문자열이 개체의 해당 이름 속성 값인 문자열 배열에 매핑해야 합니다.

따라서 위의 배열에서 최종 출력은 다음과 같아야 합니다. -

const output = ["a", "b", "c", "d"];

예시

이에 대한 코드는 -

const arr = [
   {
      'name' : 'd',
      'index' : 3
   },
   {
      'name' : 'c',
      'index' : 2
   },
   {
      'name' : 'a',
      'index' : 0
   },
   {
      'name' : 'b',
      'index' : 1
   }
];
const sortAndMap = (arr = []) => {
   const copy = arr.slice();
   const sorter = (a, b) => {
      return a['index'] - b['index'];
   };
   copy.sort(sorter);
   const res = copy.map(({name, index}) => {
      return name;
   });
   return res;
};
console.log(sortAndMap(arr));

출력

콘솔의 출력은 -

[ 'a', 'b', 'c', 'd' ]