【发布时间】:2015-02-13 15:48:48
【问题描述】:
我有两个数组:
people_keys = ['id', 'name', 'email']
people_values = [[1, 'Tarzan', 'tarzan@jungle.com'],
[2, 'Jane', 'jane@jungle.com' ]]
我想制作一组人:
people = []
people_values.each do |person_values|
person = {}
person_values.each_with_index do |person_value, index|
person[people_keys[index]] = person_value
end
people.push( person )
end
这给了我以下结果:
people # => [{"id"=>1, "name"=>"Tarzan", "email"=>"tarzan@jungle.com"},
# {"id"=>2, "name"=>"Jane", "email"=>"jane@jungle.com" }]
我想制作id、name 和email 符号而不是字符串,
所以我想出了以下内容:
我换了
person[people_keys[index]] = person_value
与
person[:"#{people_keys[index]}"] = person_value
这给了我以下结果:
people # => [{:id=>1, :name=>"Tarzan", :email=>"tarzan@jungle.com"},
# {:id=>2, :name=>"Jane", :email=>"jane@jungle.com" }]
这很好用,但似乎可以做得更好/更清洁, 但我找不到更好的解决方案。
我想知道这个问题是否有更好的解决方案。
【问题讨论】:
-
这个问题似乎跑题了,因为它是关于改进工作代码的,这使它成为Code Review 的话题。
-
@theTinMan:这里是主题,在代码审查中是题外话:”可以问“此代码是否遵循常见的最佳实践?”,而不是“什么是关于 X 的最佳实践?'"。不同之处在于他问的是如何他可以改进它,而不是什么。
标签: ruby variables hash key symbols