If I understand well, what you're asking for is pretty close to what you
suggested in your original post:
hashToBeTested.each(function(pair){
if(valueToTest==pair.value){
hashToBeTested.unset(pair.key);
}
}
Christophe
Le 10 avr. 2010 à 12:36, chrysanthe m a écrit :
> Hi, again
> Sorry for being obtuse. But can someone help me and even understand how to
> write a function and call it on a hash that will take a value, compare it
> against each of the keys in the hash, on match delete the key/value, and
> return the hash. tia.
>
> On Thu, Apr 8, 2010 at 5:24 PM, chrysanthe m <[email protected]> wrote:
> Hi Alex
> Thanks, but a newbie here so that was "drinking at a firehose". Let me parse
> it to better understand.
> First can you really invoke on two separate enumerable objects with that
> [n,n1,n2] syntax? That is tremendous.
> My problem is I need to first check the presence of a key before I unset it
> b/c I found out unset-ing a non-existent key seems to zero the struct; also
> it is more courteous, grin. So how would I construct the and parameterize
> the annonymous function to do the check and if present "do it to itself".
> Ideally I would like to pass in the enumerable, call the function and return
> the modified(or not) enumerable in the function's return.
>
> On Thu, Apr 8, 2010 at 4:41 PM, Alex Wallace <[email protected]> wrote:
> Ah, I see. You can handle this using Enumerable's invoke. This code should
> make it clear:
>
> a = new Hash({ x : "foo", y : "bar" });
> b = new Hash({ x : "zam", y : "moof" });
> a.get("x");
> "foo"
> b.get("x");
> "zam"
> [a,b].invoke("get","x");
> ["foo", "zam"]
> [a,b].invoke("unset","x")
> ["foo", "zam"]
> a.get("x")
> (undefined)
>
> Cheers,
> Alex
>
> On Thu, Apr 8, 2010 at 3:24 PM, chrysanthe m <[email protected]> wrote:
> Sorry sudden send resume in this reply
>
> Hello
> I am having a difficult time trying to enumerate a hash to determine if a
> give key is in the hash and if so delete it and its value.
> If I could approach it index it would be
> function remove(valueToTest, hashToBeTested){
> for(i=0;i<hashToBeTested.length;i++){
> if(valueToTest==hashToBeTested[i]) hashToBeTested.unset(valueToTest);
> }
>
> Would I do it like
>
> hashToBeTested.each(function(valueToTest){
> if(valueToTest==this)hashToBeTested.unset(valueToTest);
> },hashToBeTested);
> return hashToBeTested;
>
>
> which I am sure is wrong syntactically if not semantically. Can someone
> guide the proper way and more deeply the use of this?
>
>
> On Thu, Apr 8, 2010 at 3:06 PM, chrysanthe m <[email protected]> wrote:
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/prototype-scriptaculous?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.