array of hashes (finding value)

N

Nate Leavitt

I'm just looking for other possible solutions. Sorry, this is kinda a
noob question.

Currently I loop through the array and check the value of each hash key
to find values. Is that the only and/or best way to find matches?

example:

@invoices = [{:id => 1, :first_name => 'nate'}, {:id => 2, :fist_name =>
'greg'}, {:id => 3, :first_name =>}]

@invoices.each do |invoice|
if invoice[:id] == params[:contact_id]
bla... bla...
end
end
 
G

Glen Holcomb

[Note: parts of this message were removed to make it a legal post.]

I'm just looking for other possible solutions. Sorry, this is kinda a
noob question.

Currently I loop through the array and check the value of each hash key
to find values. Is that the only and/or best way to find matches?

example:

@invoices = [{:id => 1, :first_name => 'nate'}, {:id => 2, :fist_name =>
'greg'}, {:id => 3, :first_name =>}]

@invoices.each do |invoice|
if invoice[:id] == params[:contact_id]
bla... bla...
end
end
With the construct you have there it would be faster to just store the names
in an array at the index corresponding to :id. Although if this is coming
out of Rails that probably isn't a viable option. If you are stuck with
that construct then what you have should work fine. There are probably
faster/more efficient ways though.
 
N

Nate Leavitt

Glen said:
@invoices.each do |invoice|
if invoice[:id] == params[:contact_id]
bla... bla...
end
end
With the construct you have there it would be faster to just store the
names
in an array at the index corresponding to :id. Although if this is
coming
out of Rails that probably isn't a viable option. If you are stuck with
that construct then what you have should work fine. There are probably
faster/more efficient ways though.

--
"Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can't hear a word you're saying."

-Greg Graffin (Bad Religion)


Thanks for the reply. Yes, I am working in rails :) It just seems
kinda tedious to keep iterating over all these collections. Just
wondering if there is a more efficient way.
 
M

Martin DeMello

@invoices.each do |invoice|
if invoice[:id] == params[:contact_id]
bla... bla...
end

Thanks for the reply. Yes, I am working in rails :) It just seems
kinda tedious to keep iterating over all these collections. Just
wondering if there is a more efficient way.

Where did @invoices come from in the first place? If it came from the
database, you are probably doing things in your loop that you should
be doing in the sql query (e.g. Invoice.find(params[:contact_id])
rather than your if guard in the loop)

martin
 
S

Siep Korteling

Nate said:
Glen Holcomb wrote:
Thanks for the reply. Yes, I am working in rails :) It just seems
kinda tedious to keep iterating over all these collections. Just
wondering if there is a more efficient way.

[email protected]{|invoice|invoice[:id]==params[:contact_id]}

invoice_set.each do |invoice|
#stuff with invoice
end

Doubt if it is less work but it feels snappier somehow.

Regards,

Siep
 
N

Nate Leavitt

Martin said:
@invoices.each do |invoice|
if invoice[:id] == params[:contact_id]
bla... bla...
end

Thanks for the reply. Yes, I am working in rails :) It just seems
kinda tedious to keep iterating over all these collections. Just
wondering if there is a more efficient way.

Where did @invoices come from in the first place? If it came from the
database, you are probably doing things in your loop that you should
be doing in the sql query (e.g. Invoice.find(params[:contact_id])
rather than your if guard in the loop)

martin

Yeah... sorry. I actually get the collection through an xml-rpc call :)
which returns the array of hashes.
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,816
Latest member
SapanaCarpetStudio

Latest Threads

Top