检查是否有任何数组哈希对象需要值

kon*_*gun 1 ruby

我有这样一个数组:

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)