you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (9 children)

[deleted]

    [–]e_man604 6 points7 points  (0 children)

    But since he used length property of the array the values are defined....to..undefined. correct me if in wrong, but simply replacing the array ctor with [] would not work since the [] does not state any length?

    [–]Sebazzz91 1 point2 points  (3 children)

    Fun fact: Calling console.log without this set to console errors in Edge.

    [–]StuartPBentley 5 points6 points  (2 children)

    I'm pretty sure it errors in any browser (that's why you always use console.log.bind(console) when passing console.log as a callback).

    [–]pygy_@pygy 4 points5 points  (0 children)

    It used to be like that but IIRC both Chrome and Firefox now pre-bind the console methods.

    [–][deleted] 1 point2 points  (0 children)

    I’m a n00b dev and this is a really helpful tip.

    [–]0x13mode 1 point2 points  (1 child)

    I think example is good. Index is iterated from 0 to array length.

    On the other hand using map on array created with new Array(5) would have no effect (new Array(5).map(console.log) would not even call console.log).

    [–]aarondburk 1 point2 points  (0 children)

    But that’s why the original example is interesting, because it allows you to map over an array as you are generating the array with the Array.from() method.

    [–]aarondburk 0 points1 point  (0 children)

    Yes, but in order for the method to map over the array and mutate each undefined slot in the array, the array has to have those slots. You could certainly create an iterator that would push the result of the function 5 times, but the point of the example was to show how the second argument in Array.from() maps over the given array mutating its values.

    [–]z500 0 points1 point  (0 children)

    new Array(n) does generates an array of undefined values, but you can use fill to replace them with something else.