根據另一個數組對陣列進行排序 JavaScript


假設,我們有兩個類似這樣的陣列 -

const input = ['S-1','S-2','S-3','S-4','S-5','S-6','S-7','S-8'];
const sortingArray = ["S-1", "S-5", "S-2", "S-6", "S-3", "S-7", "S-4", "S-8"];

我們需要編寫一個 JavaScript 函式,該函式分別將兩個這樣的陣列作為第一個和第二個引數。

該函式應根據第一個陣列在第二個陣列中的位置對第一個陣列的元素進行排序。

程式碼如下 -

示例

const input = ['S-1','S-2','S-3','S-4','S-5','S-6','S-7','S-8'];
const sortingArray = ["S-1", "S-5", "S-2", "S-6", "S-3", "S-7", "S-4", "S-8"];
const sortByReference = (arr1 = [], arr2 = []) => {
   const sorter = (a, b) => {
      const firstIndex = arr2.indexOf(a);
      const secondIndex = arr2.indexOf(b);
      return firstIndex - secondIndex;
   };
   arr1.sort(sorter);
};
sortByReference(input, sortingArray); console.log(input);

輸出

控制檯中的輸出為 -

[
'S-1',
'S-5',
'S-2',
'S-6',
'S-3',
'S-7',
'S-4',
'S-8'
]

更新時間:2020 年 11 月 21 日

338 次瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始學習
廣告
© . All rights reserved.