根据数组在另一个数组中的存在重新排序

时间:2011-01-13 07:44:29

标签: ruby arrays

a=[1,2,3,4,5]
b=[4,3]
array_wanted=[4,3,1,2,5]

我可以通过映射和推送来做到这一点,但我很想知道更优雅的方法。

1 个答案:

答案 0 :(得分:6)

(b & a) + (a - b)
# => [4, 3, 1, 2, 5]

如果您确定b中存在来自a的所有元素,则联合运算符|似乎会返回正确的顺序:

b | a
# => [4, 3, 1, 2, 5]