Изменение порядка массива на основе его существования в другом массиве - PullRequest
2 голосов
/ 13 января 2011
a=[1,2,3,4,5]
b=[4,3]
array_wanted=[4,3,1,2,5]

Я мог бы сделать это с помощью картирования и проталкивания, но мне бы хотелось узнать более элегантные способы сделать это.

1 Ответ

6 голосов
/ 13 января 2011
(b & a) + (a - b)
# => [4, 3, 1, 2, 5]

И если вы уверены, что все элементы из b присутствуют в a, оператор объединения |, похоже, возвращает правильный порядок:

b | a
# => [4, 3, 1, 2, 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...