📅  最后修改于: 2023-12-03 15:26:42.167000             🧑  作者: Mango
在JavaScript中,我们可以使用.sort()
方法对数组进行排序。但如果需要根据另一个数组来排序,则需要进行一些额外的步骤。下面介绍如何实现根据第一个数组排序的功能。
假设有两个数组arr1
和arr2
,其中arr1
为需要排序的数组,arr2
为排序时参考的数组。按照arr2
中元素的顺序对arr1
进行排序,即按照arr2
中的元素在arr1
中出现的顺序排序。
可以使用JavaScript的.sort()
方法结合indexOf()
方法来实现数组的排序。具体实现方法如下:
let arr1 = [3, 1, 4, 2];
let arr2 = [4, 3, 2, 1];
arr1.sort(function(a, b) {
return arr2.indexOf(a) - arr2.indexOf(b);
});
console.log(arr1); // [2, 1, 4, 3]
在上面的代码中,.sort()
方法的参数是一个函数,函数返回值为arr2.indexOf(a) - arr2.indexOf(b)
,其中a
和b
分别是arr1
数组中的元素,表示比较两个元素在arr2
中的位置。如果a
在b
前面出现,则返回小于0的值,如果a
在b
后面出现,则返回大于0的值,如果a
和b
位置相同,则返回0。通过这种比较方式将arr1
中的元素进行排序。
以上就是根据第一个数组进行排序的实现方法。该方法以indexOf()
方法为基础,可以通过修改比较函数中的比较方式来满足不同的排序需求。