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)
According to MDN, Array#push returns the new length of the array, not the array itself:
Return value
The newlengthproperty of the object upon which the method was called.
The code you provided works in any node engine otherwise.
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];