Hi! I found that new Array(3) is not produce [undefined, undefined, undefined]. It produced [ <3 empty items> ]. And we are cannot to interact with it by Array.prototype methods. We must to convert it to array with Array.from for example.
You can create arrays like that: new Array(n), where n is quantity of elements. For example, new Array(3) will produce [undefined, undefined, undefined]. Besides, every array has join method, which creates a string from the array's elements and join's argument will play as separator, so that [1,2,3].join('anyStringYouLike') will be evaluated in '1anyStringYouLike2anyStringYouLike3'. And [undefined, undefined, undefined].join('String') will be evaluated in 'StringString'.
Hope this explanation will help to undestand this solution.
Hi! I found that
new Array(3)
is not produce[undefined, undefined, undefined]
. It produced[ <3 empty items> ]
. And we are cannot to interact with it by Array.prototype methods. We must to convert it to array withArray.from
for example.This is a very good kata for someone who is shaky with object syntax. I found it very helpful to me. Thanks.
Thanks everyone, your explanations helped me a lot.
You can create arrays like that: new Array(n), where n is quantity of elements. For example, new Array(3) will produce [undefined, undefined, undefined]. Besides, every array has join method, which creates a string from the array's elements and join's argument will play as separator, so that [1,2,3].join('anyStringYouLike') will be evaluated in '1anyStringYouLike2anyStringYouLike3'. And [undefined, undefined, undefined].join('String') will be evaluated in 'StringString'.
Hope this explanation will help to undestand this solution.
I believe Array is a class, and when passed a number like this, it returns an empty array of size n + 1 (empty meaning, each element is undefined).
Example:
Could someone please explain what's going on here?
Array(n+1).join(str)
I couldn't find anything on the net about Array() taking parameters. Is that an object or a method or what?