Like I've written before, if you need to return an array you can use map
instead of forEach

`arr.map(x => console.log(x) || x)`

forEach has been like this since ever so while you wonder what kind of code
would look like based on the fact forEach doesn't return  anything, I
actually wonder how come there are still people expecting forEach to return
something.

So, it would be a breaking change and actually it's not needed since you
have map.

If the new Array, and for debugging purpose, is not desired, use `var log =
DEBUG ? x => console.log(x) || x : x => x` and abuse it as much as you like.

Would any of this work?

Regards



On Fri, Oct 16, 2015 at 2:23 PM, Niloy Mondal <niloy.monda...@gmail.com>
wrote:

> > 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.bagna...@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.giammar...@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.monda...@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@mozilla.org
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>>
>>>
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss@mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>>>
>>>
>>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to