根据JavaScript中的另一个数组对数组进行排序

假设我们有两个像这样的文字数组-

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

const arr2 = [1, 2, 5];

我们需要编写一个包含两个这样的数组的JavaScript函数。然后,我们的函数应该返回一个新数组,该数组包含arr1的所有元素,但根据arr2进行排序。

就像出现在两个数组中的元素一样,应该首先按照它们在第二个数组中的顺序出现,然后是仅出现在第一个数组中的元素保持它们的顺序。

示例

为此的代码将是-

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

const arr2 = [1, 2, 5];

const sortByReference = (arr1, arr2) => {

   const inBoth = el => arr1.indexOf(el) !== -1 && arr2.indexOf(el) !== -1;

   const sorter = (a, b) => {

      if(inBoth(a) && inBoth(b)){

         return arr1.indexOf(a) - arr2.indexOf(b);

      }

      if(inBoth(a)){

         return -1;

      };

      if(inBoth(b)){

         return 1;

      };

      return 0;

   };

   arr1.sort(sorter);

};

sortByReference(arr1, arr2);

console.log(arr1);

输出结果

控制台中的输出-

[ 1, 2, 5, 3, 4, 6 ]

以上是 根据JavaScript中的另一个数组对数组进行排序 的全部内容, 来源链接: utcz.com/z/321942.html

回到顶部