Javascript array map using

I am trying to declare and initialize an array with 0 in javascript. I created an array and set the length as follows.

var previousRow = [];
previousRow.length = 5;

Then I did it.

console.log(previousRow);
previousRow = previousRow.map(Number.prototype.valueOf, 0);
console.log(previousRow);

and i got

[ , , , ,  ]
[ , , , ,  ]

But when I did

console.log(previousRow);
previousRow = Array.apply(null, previousRow).map(Number.prototype.valueOf, 0);
console.log(previousRow);

I got what I expected

[ , , , ,  ]
[ 0, 0, 0, 0, 0 ]

Why didn't the first code work?

+4
source share
1 answer

Read the MDN documentation for map. It clearly states:

callbackCalled only for array indices to which values ​​are assigned. it is not called for indexes that have been deleted or that have never been assigned values.

An array previousRowis an empty array length 5. However, the elements were never assigned a value:

var previousRow = [];
previousRow.length = 5;

previousRow , map. , Number.prototype.valueOf previousRow 5 :

console.log(previousRow);
previousRow = previousRow.map(Number.prototype.valueOf, 0);
console.log(previousRow);

, apply previousRow Array, previousRow.

, previousRow . JavaScript , undefined.

, , 5 , undefined Array. , map :

console.log(previousRow);
previousRow = Array.apply(null, previousRow).map(Number.prototype.valueOf, 0);
console.log(previousRow);

: fooobar.com/questions/24623/...

+13

All Articles