jquery 根据一个int数组对另一个ints数组进行排序

pbwdgjma  于 2022-11-03  发布在  jQuery
关注(0)|答案(2)|浏览(115)

假设我有两个数组,如下所示:

var SortedArray = [25, 123, 2464, 112, 54, 51, 347, 4572, 634];
var ArrayToSort = [634, 25, 51, 123];

SortedArray是一个包含许多元素顺序的数组。ArrayToSort只包含SortedArray中的一些元素,并且ArrayToSort中的每个元素肯定也在SortedArray中。
排序ArrayToSort的最佳方法是什么,这样该数组中的元素将以与SortedArray相同的顺序出现,并获得以下结果:

ArrayToSort = [25, 123, 51, 634];
scyqe7ek

scyqe7ek1#

试试看:

ArrayToSort.sort(function(x, y) {
    return SortedArray.indexOf(x) - SortedArray.indexOf(y);
});

Demonstration
注意:使用此方法时,如果某个元素未出现在SortedArray中,则会将其放置在SortedArray中找到的所有其他元素之前。

bvjxkvbb

bvjxkvbb2#

您可以这样做作为排序的替代方法,因为您已经有了一个排序的元素数组。

var sortedArray = [25, 123, 2464, 112, 54, 51, 347, 4572, 634],
    arrayToSort = [634, 25, 51, 123],
    sorted = sortedArray.filter(function (num) {
        return arrayToSort.indexOf(num) !== -1;
    });

console.log(sorted);

输出量

[25, 123, 51, 634]

jsFiddle

相关问题