It doesn’t!
The ... fires first and produces Array.apply(null, Array(5)).keys()
...
Array.apply(null, Array(5)).keys()
Then that is expanded to Array(undefined, undefined, undefined, undefined, undefined).keys().
Array(undefined, undefined, undefined, undefined, undefined).keys()
Since the Array was created by a list of items, keys returns [0,1,2,3,4]
[0,1,2,3,4]
JavaScript needs a range operator or a Texas range notation. Just so I don’t need to hide the splat under a function to increase readability.
Makes sense, thanks. I struggle with splat operator execution order from time to time.
In trying to rewrite the above code I ended up having to experiment a bit to figure out what was happening when... it’s certainly far from obvious.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
It doesn’t!
The
...
fires first and producesArray.apply(null, Array(5)).keys()
Then that is expanded to
Array(undefined, undefined, undefined, undefined, undefined).keys()
.Since the Array was created by a list of items, keys returns
[0,1,2,3,4]
JavaScript needs a range operator or a Texas range notation. Just so I don’t need to hide the splat under a function to increase readability.
Makes sense, thanks. I struggle with splat operator execution order from time to time.
In trying to rewrite the above code I ended up having to experiment a bit to figure out what was happening when... it’s certainly far from obvious.