Сортировка одного массива по другому в JavaScript - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно отсортировать один массив так же, как и другой массив, как в этом примере.

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 I было бы очень здорово https://www.geeksforgeeks.org/sorting-array-according-another-array-using-pair-stl/

1 Ответ

1 голос
/ 09 июля 2020

Вы можете взять индексы массива, отсортировать по желаемому порядку и сопоставить значения с их индексами.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...