假设我有2个这样的数组:
# base set
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# sub set
b = [5, 1, 8, 3]
将b
排序为与a
相同的订单的最佳方式是什么?
a.sort_like(b) #=> [1, 3, 5, 8]
这个操作叫什么?
答案 0 :(得分:11)
我认为这就是你想要的:
a & b
答案 1 :(得分:1)
这样做,我不确定最有效的方式。
def sort_like(other)
items = []
other.each do |find|
each do |item|
items.append item if item == find
end
end
items
end
答案 2 :(得分:-1)
如果b是a的子集,正如您所定义的那样,那么结果将始终是b 的排序版本。在这种情况下,你只需要b.sort
(它不会改变b,它将返回一个新的数组,其中包含b的排序内容。)