for own(...) loop (spin-off from Re: for..in, hasOwnProperty(), and inheritance)

Dean Landolt dean at deanlandolt.com
Wed Nov 9 13:33:25 PST 2011


On Wed, Nov 9, 2011 at 4:20 PM, Brendan Eich <brendan at mozilla.com> wrote:

> On Nov 9, 2011, at 1:15 PM, Dean Landolt wrote:
>
> On Wed, Nov 9, 2011 at 4:05 PM, Brendan Eich <brendan at mozilla.com> wrote:
>
>> On Nov 9, 2011, at 12:40 PM, Jorge wrote:
>>
>> > On 08/11/2011, at 22:17, John J Barton wrote:
>> >> Just as a point of comparison, I use this form:
>> >>  Object.keys(o).forEach( function(key) {
>> >>     body
>> >>  });
>> >
>> > By the way, isn't that above a(nother) good use case for a goto, given
>> that there's no (easy) way to break out of a forEach 'loop' ?
>>
>> "goto" as in C, from body to a label in the outer function or script?
>> Seriously?
>>
>> You could always use try/catch/throw, but who would?
>>
>
>
> Umm, es-next, right? In a way, isn't this what StopIteration is? :)
>
>
> No, that's almost entirely under the for/of hood. The number of users who
> have to manually catch in order to write schedulers is miniscule compared
> to the population who'll write loops, comprehensios, and generator
> expressions.
>
>
> Still, it's a whole lot nicer to just let the language do your try/catch
> wrapping where you can.
>
>
> Yes.
>
>
> And if you need to break out of forEach, just, umm, don't use forEach.
> It's the wrong tool for the job.
>
>
> Clearly people like the forEach array extra in conjunction with
> Object.keys.
>


Aye, but I suspect that's because many people don't realize that `some` is
a superset of forEach, and IIUC is for *exactly* this use case. I bet this
lack of awareness of the rest of the array extras will be improved with
time -- I don't think it lends much support to any argument for fancy new
control flow semantics.



> With block-lambdas they could have their cake and break from it too
>


That's what I'm afraid of :-/


(and the call would be paren-free to boot).
>
> /be
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20111109/5821dc72/attachment-0001.html>


More information about the es-discuss mailing list