Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp theo chỉ mục của một mảng trong JavaScript

Giả sử chúng ta có mảng đối tượng sau -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy.

Hàm nên sắp xếp mảng này theo thứ tự tăng dần theo thuộc tính chỉ mục của các đối tượng.

Sau đó, hàm sẽ ánh xạ mảng đã sắp xếp thành một mảng chuỗi trong đó mỗi chuỗi là giá trị thuộc tính tên tương ứng của đối tượng.

Do đó, đối với mảng trên, kết quả cuối cùng sẽ giống như -

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

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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