Giả sử chúng ta có hai mảng như sau:
const arr1 = ['d','a','b','c'] ;
const arr2 = [{a:1},{c:3},{d:4},{b:2}];Chúng ta cần viết hàm nhận vào hai mảng này. Hàm sẽ sắp xếp mảng thứ hai theo thứ tự các phần tử của mảng thứ nhất.
Ta sắp xếp key của mảng thứ hai theo thứ tự phần tử mảng thứ nhất. Kết quả:
const output = [{d:4},{a:1},{b:2},{c:3}];Ví dụ
Dưới đây là đoạn code:
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);Kết quả
Đoạn code sẽ in ra console:
[ { d: 4 }, { a: 1 }, { b: 2 }, { c: 3 } ]