I''m using an object to represent some data, and I have an array of
those objects. I need to determine if an object exists in the array
with a given identifier.
My object looks something like this:
var obj = {
id: 123,
val1: "hello",
val2: "world"
}
There are between 40-100 instances of obj in an Array. I need to know
if the array contains an object such that obj.id = 456.
I''ve looked at the Enumerable.collect() function, but since I need to
compare a large number of items against the array, I''m looking at n*x
run time.
I''m considering converting the Array to a Hash so I can test
"myHash[123]" to see if object 123 is in there. So I need a way to
convert the Array to an Hash such that the Hash''s member keys are the
id property of each object as a value.
This might be my array:
[ {id: 10, val1: "hello world"},
{id: 22, val1: "hello world"},
{id: 16, val1: "hello world"},
{id: 87, val1: "hello world"} ]
And this is what I''d like to have as a Hash:
{ 10: {id: 10, val1: "hello world"},
22: {id: 22, val1: "hello world"},
16: {id: 16, val1: "hello world"},
87: {id: 87, val1: "hello world"} }
So far the best I''ve come up with is a collect iterator on the array
that builds a JSON string of each item. I then pass the
string.evalJSON() to the $H() operator.
Any better suggestions?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
jarrod wrote:> So far the best I''ve come up with is a collect iterator on the array > that builds a JSON string of each item. I then pass the > string.evalJSON() to the $H() operator.Ouch! That sounds like a really bad idea. Did you try something like this: myhash = {}; $A(myarray).each(function(item) { myhash[item.id] = item; }) -- Michael Peters Developer Plus Three, LP --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On Aug 15, 2007, at 2:05 PM, jarrod wrote:> So far the best I''ve come up with is a collect iterator on the array > that builds a JSON string of each item. I then pass the > string.evalJSON() to the $H() operator. > > Any better suggestions?If that''s really the way you want to go, why bother with the string- >hash conversion? var h = {}; arr.each(function (a) { h[a.id] = a; }); console.log( $H(h).inspect() ); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---