ruby - 从 Ruby 哈希数组中提取数据

标签 ruby arrays hash

鉴于我有以下哈希数组

@response =  { "0"=>{"forename_1"=>"John", "surname_1"=>"Smith"}, 
               "1"=>{"forename_1"=>"Chris", "surname_1"=>"Jenkins"}, 
               "2"=>{"forename_1"=>"Billy", "surname_1"=>"Bob"},
               "Status" => 100
             }

我希望创建一个 forename_1surname_1 值组合的数组,因此所需的输出将是

["John Smith", "Chris Jenkins", "Billy Bob"]

所以我可以走到这一步,但需要进一步的帮助

# Delete the Status as not needed
@response.delete_if { |k| ["Status"].include? k }

@response.each do |key, value|
  puts key
  #This will print out 0 1 2
  puts value
  # This will print {"forename_1"=>"John", "surname_1"=>"Smith"}, "{"forename_1"=>"Chris", "surname_1"=>"Jenkins"}, "{"forename_1"=>"Billy", "surname_1"=>"Bob"}
  puts value.keys
 # prints ["forename_1", "surname_1"], ["forename_1", "surname_1"], ["forename_1", "surname_1"] 
  puts value.values
  # prints ["John", "Smith"], ["Chris", "Jenkins"], ["Billy", "Bob"] 
  value.map { |v| v["forename_1"] }
  # However i get no implicit conversion of String into Integer error
end

我做错了什么?

谢谢

最佳答案

另一种方式:

@response.values.grep(Hash).map { |t| t.values.join(' ')}

关于ruby - 从 Ruby 哈希数组中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679184/

相关文章:

java - 为什么我的循环在计算最后一个数字之前就跳出了?

c++ - 哈希函数/代码

java - Delphi 中有哈希数组吗?

ruby-on-rails - 有人可以向我解释一下这个 ruby​​ 语法是如何工作的吗?

ruby - 从命令行通过 capistrano 在远程主机上运行命令

ruby-on-rails - 直接在模型上调用 rspec 会导致 stub 错误!方法

php - 如何将两列表写成数组?

java - 询问包含数组中包含的字母的单词

c - netbsd 版本的 openssh 支持 "diffie-hellman-group-exchange-sha256",但不支持 Mac 的 SHA256

python - 学习 Go 或提高我的 Python/Ruby 知识