Как создать массив хэшей, отображая 2 хэша в ruby на рельсах - PullRequest
0 голосов
/ 26 марта 2020

Я использую Ruby в приложении Rails. Я хочу объединить 2 массива хэшей с ха sh и получить массив хэшей.

Входные данные:

first_array_of_hash = [{:name => "John", :age => 34, :mode => "nullable"},{:name => "Rose", :age => 30, :mode => "nullable"}]

second_hash = {:field_name => "", :field_age => nil, :field_nullable => false, :field_default => ""}

Я хочу, чтобы мой результат был как ниже

result = [{:field_name => "John", :field_age => 34, :field_nullable => true, :field_default => ""},{:field_name => "Rose", :field_age => 30, :field_nullable => true, :field_default => ""}]

1 Ответ

1 голос
/ 26 марта 2020

Вы можете использовать обычный Array#map для этого:

first_array_of_hash = [{:name => "John", :age => 34, :nullable => 'yes'},{:name => "Rose", :age => 30, :nullable => 'no'}]

second_hash = {:field_name => "", :field_age => nil, :field_nullable => false, :field_default => ""}

def transform(object)
  {
    field_name: object[:name],
    field_age: object[:age],
    field_nullable: object[:mode] == 'nullable'
  }
end

result = first_array_of_hash.map do |object|
  second_hash.merge(transform(object))
end

puts result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...