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

Sắp xếp mảng đối tượng dựa trên một mảng khóa khác - JavaScript

Giả sử, chúng ta có hai mảng như thế này -

const arr1 = ['d','a','b','c'] ;
const arr2 = [{a:1},{c:3},{d:4},{b:2}];

Chúng tôi được yêu cầu viết một hàm JavaScript chấp nhận hai mảng này. Hàm sẽ sắp xếp mảng thứ hai theo các phần tử của mảng đầu tiên.

Chúng ta phải sắp xếp các khóa của mảng thứ hai theo các phần tử của mảng đầu tiên. Điều này sẽ tạo ra kết quả sau -

const output = [{d:4},{a:1},{b:2},{c:3}];

Ví dụ

Sau đây là mã -

const arr1 = ['d','a','b','c'] ;
const arr2 = [{a:1},{c:3},{d:4},{b:2}];
const sortArray = (arr1, arr2) => {
   arr2.sort((a, b) => {
      const aKey = Object.keys(a)[0];
      const bKey = Object.keys(b)[0];
      return arr1.indexOf(aKey) - arr1.indexOf(bKey);
   });
};
sortArray(arr1, arr2);
console.log(arr2);

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[ { d: 4 }, { a: 1 }, { b: 2 }, { c: 3 } ]