我有兩個陣列one = [1,2,3,4,5,6,7]
和two = [{1=>'10'},{3=>'22'},{7=>'40'}]
合併數組和散列在紅寶石在陣列
兩個將有one.length
散列或更小。我想要一個新的數組,如果它的密鑰出現在一個,如果不是,然後使用0. 新陣列將是[10,0,22,0,0,0,40]
這樣做的最佳方法是什麼?
我有兩個陣列one = [1,2,3,4,5,6,7]
和two = [{1=>'10'},{3=>'22'},{7=>'40'}]
合併數組和散列在紅寶石在陣列
兩個將有one.length
散列或更小。我想要一個新的數組,如果它的密鑰出現在一個,如果不是,然後使用0. 新陣列將是[10,0,22,0,0,0,40]
這樣做的最佳方法是什麼?
我使用Enumerable#reduce
和Hash#values_at
做到這一點:
two.reduce({}, :merge).values_at(*one).map(&:to_i)
# => [10, 0, 22, 0, 0, 0, 40]
你'two'無效。 – sawa
這也是無效的。 – sawa