根据另一个数组对数组进行排序 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 次浏览

开启你的 职业生涯

完成课程即可获得认证

开始学习
广告