尝试过滤数组内嵌套哈希中的键

时间:2012-05-21 16:26:08

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有以下数组:

[#<PatchedOpenStruct name="Kristen Stewart", id="162655167", characters=["Snow White"]>, #<PatchedOpenStruct name="Chris Hemsworth", id="770829335", ch
aracters=["The Huntsman"]>, #<PatchedOpenStruct name="Charlize Theron", id="162654733", characters=["The Queen"]>, #<PatchedOpenStruct name="Viggo Mort
ensen", id="162654541">, #<PatchedOpenStruct name="Sam Claflin", id="771073196", characters=["Prince"]>]

我正在尝试过滤所有'name'字段。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

如果您只想提取所有名称,请使用collect(或其map别名)在数组的每个元素上调用name方法,并将结果收集到另一个元素中阵列:

names = a.collect(&:name)

答案 1 :(得分:2)

如果这些是标准的OpenStructs,我可以想到两种方法。

array_of_things.collect{|each_thing| each_thing.name}返回所有内容的所有名称的数组。 array_of_things.select{|each_thing| each_thing.name =~ /Kristen/}返回一组名称与表达式/Kristen/匹配的内容。