在 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 } ]

更新於: 2020-10-21

151 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.