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


我們要求編寫一個排序函式,該函式根據另一個數組的內容對陣列進行排序。

例如,我們必須對原始陣列進行排序,以便以下 sortOrder 陣列中存在的元素顯示在原始陣列的開頭,並且所有其他元素保持其順序:

const originalArray = ['Apple', 'Cat', 'Fan', 'Goat', 'Van', 'Zebra'];
const sortOrder = ['Zebra', 'Van'];

示例

const originalArray = ['Apple', 'Cat', 'Fan', 'Goat', 'Van', 'Zebra'];
const sortOrder = ['Zebra', 'Van'];
const sorter = (a, b) => {
   if(sortOrder.includes(a)){
      return -1;
   };
   if(sortOrder.includes(b)){
      return 1;
   };
   return 0;
};
originalArray.sort(sorter);
console.log(originalArray);

輸出

控制檯中輸出將是 -

[ 'Zebra', 'Van', 'Apple', 'Cat', 'Fan', 'Goat' ]

更新於: 26-8-2020

3K+ 瀏覽

開啟你的 職業

完成課程來獲得認證

入門
廣告