根據另一個鍵陣列對物件陣列排序 - JavaScript
假設,我們有兩個類似這樣的陣列 −
const arr1 = ['d','a','b','c'] ; const arr2 = [{a:1},{c:3},{d:4},{b:2}];
我們需要編寫一個接受這兩個陣列的 JavaScript 函式。該函式應根據第一個陣列的元素對第二個陣列進行排序。
我們必須按照第一個數組裡的元素對第二個陣列的鍵進行排序。這將會產出以下程式碼 −
const output = [{d:4},{a:1},{b:2},{c:3}];
範例
以下為程式碼 −
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);
輸出
這將會在控制檯中產生以下輸出 −
[ { d: 4 }, { a: 1 }, { b: 2 }, { c: 3 } ]
廣告