首页 > 解决方案 > 在 JavaScript 中根据另一个数组对数组进行排序

问题描述

我需要对一个数组进行排序,就像在这个例子中一样。

Input : 

2 1 5 4 9 3 6 7 10 8

A B C D E F G H I J

Output : 

1 2 3 4 5 6 7 8 9 10 

B A F D C G H J E I 

这是c ++中的代码,但我不知道c ++,所以如果有人可以用js编写它,我会非常感激 https://www.geeksforgeeks.org/sorting-array-according-another-array-using-pair-stl /

标签: javascriptarrayssorting

解决方案


您可以获取数组的索引,按所需顺序排序并将值与其索引映射。

var order = [2, 1, 5, 4, 9, 3, 6, 7, 10, 8],
    values = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
    result = [...order.keys()]
        .sort((a, b) => order[a] - order[b])
        .map(i => values[i]);

console.log(...result);


推荐阅读