在 JavaScript 中實現優先排序


我們需要編寫一個 JavaScript 函式,該函式接受兩個數字陣列,第二個陣列比第一個陣列小。

我們的函式應該是第一個陣列的已排序版本(比如用升序排列),但將兩個陣列中都存在的元素放到前面。

例如 − 如果兩個陣列是 −

const arr1 = [5, 4, 3, 2, 1];
const arr2 = [2, 3];

那麼輸出應該是 −

const output = [2, 3, 1, 4, 5];

示例

以下是程式碼 −

const arr1 = [5, 4, 3, 2, 1];
const arr2 = [2, 3];
// helper function
const sorter = (a, b, arr) => {
   if(arr.includes(a)){
      return -1;
   };
   if(arr.includes(b)){
      return 1;
   };
   return a - b;
};
const prioritySort = (arr1, arr2) => {
   arr1.sort((a, b) => sorter(a, b, arr2));
};
prioritySort(arr1, arr2);
console.log(arr1);

輸出

以下是在控制檯中的輸出 −

[ 2, 3, 1, 4, 5 ]

更新時間: 2020 年 9 月 18 日

1 千次 + 瀏覽

啟動你的生涯

透過完成本課程獲得認證

入門
廣告