Учитывая следующий Hash hash
с ключами в качестве символов и значений как массивы:Получить массив из хэша с массивами в качестве значений
hash
#=> {:stage_item=>[:stage_batch_id, :potential_item_id], :item=>[:id, :size, :color, :status, :price_sold, :sold_at], :style=>[:wholesale_price, :retail_price, :type, :name]}
Как получить массив с просто значением (массивы) складываются вместе?
Я знаю, что могу использовать #each_with_object
и #flatten
:
hash.each_with_object([]) { |(k, v), array| array << v }.flatten
#=> [:stage_batch_id, :potential_item_id, :id, :size, :color, :status, :price_sold, :sold_at, :wholesale_price, :retail_price, :type, :name]
Но я ожидал только #each_with_object
работы:
hash.each_with_object([]) { |(k, v), array| array += v }
#=> []
Я хотя точка каждого с объекта он отслеживает (в данном случае это array
), поэтому я могу +=
это как в следующем примере:
arr = [1,2,3]
#=> [1, 2, 3]
arr += [4]
#=> [1, 2, 3, 4]
Что мне не хватает?