Oh, I'm not offended at all, i just wanted to justify the use of this 'non-conventionnal' way and have some feedback about it.
simon :) 2008/9/17 Yanick <[EMAIL PROTECTED]> > > Simon, > Indeed, I realized that what you suggested didn't imply an each() > function call thereafter, only after I clicked the 'Send' button. > (Didn't read the 'match' function in your code.) My apologies. Thus, > your suggestion is almost as equal as T.J. Crowder's one. (...moving > on) > > A note to clarify; I do not believe that findAll().each() is the > 'Prototype' way. Or, at least, I don't believe that they were designed > specifically to work that way. For small size arrays, this may be > irrelevant, but what I intended to say is that suggesting to > concatenate two iterative functions to achieve a goal is poor coding > habbit, regardless of the size of the object being iterated. The > comment wasn't directed to you specifically, but to those who quickly > suggest such things (and I see too often poor suggestions being given > in many forums). > > That being said, I'm sorry if I offended you, or anyone in that > matter. > > yanick > > > On Sep 16, 12:08 pm, "Simon Charette" <[EMAIL PROTECTED]> wrote: > > Sorry Yannick, > > but even if I agree with you that findAll().each() is the 'Prototype' way > > which i would prefer to the grep method i suggested. > > It still creates two iterations while the grep solutions doesn't. > > > > Thats the main reason why i suggested this formula. > > > > 2008/9/16 Yanick <[EMAIL PROTECTED]> > > > > > > > > > I have seen two responses using filter().each() (or grep().each()) and > > > I just wanted to say that, IMHO, this is not good practice, and thus > > > should not be recommanded as this creates two iterations over the same > > > array for the same purpose and encourages bad coding habbits. The > > > question is not "would this work?" but rather "is this the best way?" > > > The OP must've felt the same way, otherwise he would've used such > > > "double sequential loops way" in the first place. In fact, what T.J. > > > Crowder suggested is the most Prototype way. I hope we'll all learn > > > from this :) > > > > > yanick > > > > > On Sep 15, 12:24 pm, Grant Hutchins <[EMAIL PROTECTED]> wrote: > > > > It seems to me that Enumerable#findAll (aliased as select) is what > you > > > > want for your first example. > > > > > > myArray.findAll( function(obj){ obj.className == > > > > 'MyProtoClass' } ).each( function(obj){ obj.doStuff } ); > > > > > > This way you're using the official Prototype way to do these > > > > operations. > > > > > > Grant > > > > > > On Sep 11, 6:17 pm, EMoreth <[EMAIL PROTECTED]> wrote: > > > > > > > Working with prototype from a long time ago I always need a > function > > > > > that could do something just like the Strongly Type languages, as > Java > > > > > or many others, that is a for ( ObjectClass object in > > > > > arrayLikeStructure ) to get all objects from that array that are > from > > > > > the class ObjectClass and do something... > > > > > > > Since Javascript does not have this kind of Typed Class its is very > > > > > hard and annoying to do such thing... I recently tought two ways > that > > > > > could make it work... > > > > > > > First (and simpler) is a foreach function that applyes on > Enumerable > > > > > items and Accepts two functions.. the first one is a boolean that > will > > > > > tell the code when the object is the class/type that I want, and > the > > > > > second function should be the action at real... to apply in that > > > > > object. Something like : > > > > > > > myArray.foreach(function(obj){ return obj.className == > > > > > 'MyProtoClass'}, function(obj) { obj.doStuff() }) > > > > > > > The second one is just a little different (more Java-Like)... in > this > > > > > case we would need a previous custom method on all objects that > would > > > > > say if this one matches a defined parameter or not... something > like > > > > > > > a.className = 'MyClass'; > > > > > b.className = 'MyProtoClass'; > > > > > > > a.isMyObject = function(check) { return this.className == check } > > > > > b.isMyObject = function(check) { return this.className == check } > > > > > > > myArray.foreach( 'MyProtoClass', function(obj) { obj.doStuff() }) > > > > > > > and it would only apply on b.doStuff() > > > > > > > I cant tell if this would have the same utility for everyone that > > > > > would have for me... But i thing that would be very good for people > > > > > who are used to other Typed Languages... > > > > > > > Please tell me what you think about that.. > > > > > > > EMoreth > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype: Core" group. To post to this group, send email to prototype-core@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/prototype-core?hl=en -~----------~----~----~----~------~----~------~--~---