У меня есть массив JSON, который выглядит примерно так.Фильтр JSON массив по значению с Ruby
[
{"name":"Idaho","state":{"id":1,"name":"A"}},
{"name":"Wyoming","state":{"id":1,"name":"A"}},
{"name":"Montana","state":{"id":2,"name":"B"}},
{"name":"South Dakota","state":{"id":1,"name":"B"}}
]
Как я могу использовать Ruby, чтобы показывать только значение A?
Я не думаю, что sort_by будет ответом, потому что то, что у меня ниже, просто сортирует их по алфавиту. Я хочу, чтобы полностью исключить все результаты из B.
.sort_by { |a| [a.state.name] }
Что бы быть наиболее эффективным способом сделать это в .rb файл?
Я решил свой вопрос. Так я и добился того, чего хотел.
.select { |a| a.state.name == "A" }
'a.state.name' как вы могли бы сделать это в JavaScript, но в Ruby, это' а [ 'состояние'] [ 'имя'] '. – tadman
Также стоит прочитать метод ['Enumerable # select'] (http://ruby-doc.org/core-2.1.2/Enumerable.html#method-i-select). – tadman
В качестве альтернативы, 'str.scan (/ [AZ] [a-zA-Z \ s] + (? =. +: \" A \ ". +? $) /) => [" Айдахо "," Вайоминг " ] '. –