I am creating an Array
with length of 1,000,000
and filling it with 1
like this:
const bigArray = Array.from({ length: 1000000 }, () => 1);
when I push a new item to that Array
just inline as bellow, Nodejs
logs an error:
// This rise an TypeError: bigArray.push is not a function
const bigArray = Array.from({ length: 1000000 }, () => 1).push(3);
// Although this one works right
const bigArray = Array.from({ length: 1000000 }, () => 1);
bigArray.push(3)
CodePudding user response:
According to MDN, Array#push
returns the new length of the array, not the array itself:
Return value
The newlength
property of the object upon which the method was called.
The code you provided works in any node engine otherwise.
CodePudding user response:
As an alternative to that approach to keep things in one assignment, you could spread the array into a new array:
const bigArray = [...Array.from({ length: 1000000 }, () => 1), 3];