我想在rails中做一些与Array等价的事情。
下面是一个应用于我的用例的例子,它是一个更复杂的include?
(我想将其应用于*args
):
ary = [:a, :b, :c, d: :x, e: :y] # => [:a, :b, :c, { :d => :x, :e => :y }]
search = :e
contained = ary.some { |x|
x == search || x.try(:key?, search)
} # => true
assert contained, "We should have found #{search}"
字符串
我可以用ary.map
来做,但这意味着遍历整个数组,然后再次测试它的内容。我也可以用ary.drop_while
来验证它是否返回一个空数组,但同样,我需要测试结果。我也见过ary.bsearch
,但有一些奇怪的限制,我不太明白元素的顺序。
我错过了什么吗?没有一个简单的方法来做到这一点吗?我使用ruby2和rails 4(edge)。
2条答案
按热度按时间rhfm7lfc1#
JavaScript Array.prototype.some相当于Ruby Escort #any?。
字符串
epggiuax2#
如果你真的在寻找
some?
,你可能会想要这样的东西。字符串
这将给予您
true
只有当一些元素被设置,但不是所有。点击这里查看代码片段https://coderwall.com/p/wcgj2w