在 JavaScript 中实现优先级排序

javascriptweb developmentfront end technologyobject oriented programming更新于 2025/12/11 17:16:17

我们需要编写一个 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 ]

相关文章


有用资源