私は3つの配列を持っています。
私のメイン リストには、DB で検証されるさまざまなエンティティが混在しています。
ab = ["a:555", "b:222", "a:333", "b:777", "a:777", "a:999", "b:111"]
a
エンティティとエンティティが分離されていますb
が、順序付けられています (一部が欠落しています)。
# notice that some of the items from the initial list are missing, but the order is preserved!
a = [{id}, "a:777", "a:999"]
b = ["b:222", "b:111"]
アイテムが存在する場所の順序を維持してマージする効率的な方法は何a
ですかb
? 手順からの私の期待される結果は次のとおりです。c
ab
c = ["a:555", "b:222", "a:777", "a:999", "b:111"]
私は Ruby の初心者で、思いついたものはすべてまったく醜いものです。
編集:
a
私はそれが重要であることを知っていb
ましたab
. 私のコードで明確にするには:
ab = ["a:555", "b:222", "a:333", "b:777", "a:777", "a:999", "b:111"]
a = [{:id => 555}, {:id => 777}, {:id => 999}]
b = [{:id => 222}, {:id => 111}]
c = []
ab.each { |item|
parts = item.split(":")
if parts[0] == "a"
if a[0][:id].to_s() == parts[1]
c << a.shift()
end
else
if b[0][:id].to_s() == parts[1]
c << b.shift()
end
end
}
puts c