1

私はこのような配列を持っています:

arr = [{id: 1, name: 'John' }, {id: 2, name: 'Sam' }, {id: 3, name: 'Bob' }]

arrいずれかのオブジェクトに nameがあるかどうかを確認する必要がありますSam。最もエレガントな方法は何ですか?とサイクリングすることしか考えられませんeach

4

3 に答える 3

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

また、 SamArrayという値を持つオブジェクトも確認したい場合は、同じものを使用できます。Enumerable#find

arr.find {|h| h[:name] == "Sam"}
# => {:id=>2, :name=>"Sam"}
于 2013-06-23T19:46:47.660 に答える