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

问题描述 投票:0回答:2

我有以下数组:

[#<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"]>]

我试图从这里过滤所有'名称'字段。任何帮助?

ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1
2个回答
2
投票

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

names = a.collect(&:name)

2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.