Это немного сложнее, но основывается на ответе Райана, а не на
x.each do |line|
name, age = line.split(/\s/)
array.push([name, age])
end
, вы можете использовать функцию map
и иметь
people = x.map do |line|
name, age = line.split(/\s/)
[name, age]
end
desired_result = [["name", "age"]] + people
Это немного более "функциональный" подход к программированию. Я уверен, что это очень грубое резюме, но в функциональном программировании вы не изменяете существующие объекты, вы просто создаете новые объекты.
Кроме того, если вы хотите проверить ответ Райана, вы можете использовать object_id
для каждого из объектов:
array.each_with_index do |object, index|
puts "Object #{index} (which is #{object.inspect}) has an object id of #{object.object_id}"
end
что дает
Object 0 (which is ["name", "age"]) has an object id of 10204144
Object 1 (which is ["Jim", "36"]) has an object id of 10248384
Object 2 (which is ["Jim", "36"]) has an object id of 10248384
Object 3 (which is ["Jim", "36"]) has an object id of 10248384