Return value of forEach

Niloy Mondal niloy.mondal84 at gmail.com
Fri Oct 16 13:23:36 UTC 2015


> That'd be a compatibility break.

Ugh... you mean people actually depend on `forEach` returning `undefined`
(which it always does) to do further task?

I wonder what that kinda code would look like >.<

On Fri, Oct 16, 2015 at 6:08 PM, Frankie Bagnardi <f.bagnardi at gmail.com>
wrote:

> That'd be a compatibility break.
>
> If we end up getting :: though:
>
> ```js
> function logEach(){
>   this.forEach((x) => console.log(x));
>   return this;
> }
>
>
> const a = [1, 2, 3]
>   .map(square)
>   ::logEach()
>   .map(plus1)
>   .reduce(add);
> ```
>
> You could make that a global variable so you can sprinkle it around your
> code in development.
>
> Having some developer tools in the language would be nice though. I don't
> even think console.log is in the spec. A global like Debug.logThis for
> example would be a more general ::-able.
>
>
> On Fri, Oct 16, 2015 at 5:32 AM, Andrea Giammarchi <
> andrea.giammarchi at gmail.com> wrote:
>
>> ```js
>> const a = [1, 2, 3]
>>   .map(square)
>>   .map(x => console.log(x) || x )
>>   .map(plus1)
>>   .reduce(add);
>> ```
>>
>> Regards
>>
>>
>> On Fri, Oct 16, 2015 at 10:13 AM, Niloy Mondal <niloy.mondal84 at gmail.com>
>> wrote:
>>
>>> Currently, `Array.prototype.forEach` returns `undefined`. It would be
>>> more
>>> useful if it returns the array itself.
>>>
>>> Say I have written some code like this...
>>>
>>> ```js
>>> const a = [1, 2, 3]
>>>   .map(square)
>>>   .map(plus1)
>>>   .reduce(add);
>>> ```
>>>
>>> For some reason, I am not getting the expected output. For debugging, I
>>> would
>>> like the print the values after each step. My first initial reaction is
>>> to
>>> put a `forEach` step in between and print the values like so...
>>>
>>> ```js
>>> const a = [1, 2, 3]
>>>   .map(square)
>>>   .forEach(x => console.log(x))
>>>   .map(plus1)
>>>   .reduce(add);
>>> ```
>>>
>>> Unfortunately, this does not work as `forEach` returns `undefined`. I
>>> now have
>>> to comment out all the code below it. Having the _plug and play_
>>> behaviour for
>>> `forEach` would be very convenient.
>>>
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>>>
>>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20151016/6bbcdaa0/attachment-0001.html>


More information about the es-discuss mailing list