【发布时间】:2014-10-29 17:40:24
【问题描述】:
我有一个类似这样的 JSON 数组。
[
{"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 中这是a['state']['name']。 -
Enumerable#select方法也值得一读。 -
或者,
str.scan(/[A-Z][a-zA-Z\s]+(?=.+:\"A\".+?$)/) => ["Idaho", "Wyoming"]。