我有这样一个数组:
arr = [{id: 1, name: 'John' }, {id: 2, name: 'Sam' }, {id: 3, name: 'Bob' }]
Run Code Online (Sandbox Code Playgroud)
我需要检查是否有任何arr对象有名称Sam.什么是最优雅的方式?我只能想到骑车each.
Aru*_*hit 10
我需要检查是否有任何arr对象有Sam的名字
Enumerable#any? 是一个很好的方式去.
arr = [ {id: 1, name: 'John' }, {id: 2, name: 'Sam' }, {id: 3, name: 'Bob' }]
arr.any? {|h| h[:name] == "Sam"}
# => true
Run Code Online (Sandbox Code Playgroud)
现在,如果您还想查看哪个Array对象具有值Sam,您可以使用Enumerable#find相同的:
arr.find {|h| h[:name] == "Sam"}
# => {:id=>2, :name=>"Sam"}
Run Code Online (Sandbox Code Playgroud)