Finding an element in an array of hashes

Discussion in 'Ruby' started by Alex Stupakov, Dec 4, 2009.

  1. Hi,

    I have an array of Facebooker::User objects

    so friends.class = Array
    and friends[1].class = Facebooker::User

    Facebooker::User objects which are basically hashes.

    each friend has a unique facebook_id so
    friends[1].facebook.id.class = Integer

    I'd like to find the array member with a particular facebook_id.

    friends.find_by_id(12345) should return the corresponding
    Facebooker::User object

    What's the cleanest way to do this?
    Do I have to iterate over the array members or is there a method in Ruby
    that does this?

    Thanks

    Alex
     
    Alex Stupakov, Dec 4, 2009
    #1
    1. Advertisements

  2. "basically" hashes? That doesn't look like hash syntax to me..

    friends.find { |friend| friend.facebook.id = 12345 }

    http://ruby-doc.org/core/classes/Enumerable.html#M003122
     
    Aldric Giacomoni, Dec 4, 2009
    #2
    1. Advertisements

  3. You're right, my mistake.
    Thanks for the suggestion, it works great, and for the link.
     
    Alex Stupakov, Dec 4, 2009
    #3
  4. Careful, there should be a == there...

    Jesus.
     
    Jesús Gabriel y Galán, Dec 4, 2009
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.