我对以下数组迭代有疑问。我想创建一个jt
带有短语“food”和“drink”的数组,从第一个命令的输出可以看出,该命令由一个有两个标签的项目构成global_tags
,每个标签都有一个短语,在这种情况下,food
或drink
。我不确定为什么我得到了最后一行中看到的两个嵌入式数组。
1.9.3p392 :043 > m.global_tags.map { |t| puts t.tag.phrase }
drink
food
=> [nil, nil]
1.9.3p392 :044 > jt=[]
=> []
1.9.3p392 :045 > m.global_tags.map { |t| jt << t.tag.phrase }
=> [["drink", "food"], ["drink", "food"]]
1.9.3p392 :046 >
另外,我正在尝试使用更短的语法。这似乎可行,但不确定这在 Ruby 术语中是否被认为是丑陋的(?)
1.9.3p392 :050 > m.global_tags.map(&:tag).map(&:phrase)
=> ["drink", "food"]
谢谢帮助