繁体   English   中英

无法遍历哈希中的值

[英]Can't loop through values in a hash

我是Ruby的新手。 我凑在一起像这样:

in_msg.updateComments.map{|c| c.each} do |comment|

in_msg.updateComments是一个哈希。

但是我得到了错误:

SyntaxError: /Users/alexgenadinik/projects/cmply/cmply-app/app/models/linked_in_update.rb:65: syntax error, unexpected kDO, expecting kEND
      in_msg.updateComments.map{|c| c.each} do |comment|

任何想法如何正确地做到这一点?

数据是这样输入的:

 "updateComments"=>{"values"=>[{"comment"=>"Sweet", "person"=>{"siteStandardProfileRequest"=>{"url"=>"http://www.linkedin.com/profile?viewProfile=&key=23676551&authToken=FHXz&authType=name&trk=api*a140290*s148640*"},

首先。 这是指向Hash对象的链接。 我们不需要map方法来遍历哈希。 通过Hash迭代是使用eacheach_paireach_keyeach_value方法完成的。 有关用法和语法,请参见前面提供的链接。

in_msg.updateComments.each do |key, value|
  p key #prints "values" string on first loop
  value.each do |k, v|
    p k #prints "comment", "person"
    p v #prints "Sweet", "{"siteStandardProfileRequest"=>{"url"=>"http://www.linkedin.com/profile?viewProfile=&key=23676551&authToken=FHXz&authType=name&trk=api*a140290*s148640*"}"
  end
end

您似乎对如何使用块感到困惑。

in_msg.updateComments.each do |key, value|
   # code here...
end

要么

in_msg.updateComments.each {|key, value| code_here }

更新 :现在您已经发布了数据...看起来您有几个嵌套的哈希和数组。 我建议在ruby数组和ruby哈希上找到一个很好的教程。

我相信您要查找的语法是这样的:

in_msg.updateComments.map { |c| 
  c.each  do |comment| 
     # do stuff for each comment
  end
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM