Home > database >  why inline `push()` doesn't work on new created array?
why inline `push()` doesn't work on new created array?

Time:02-25

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)

enter image description here

CodePudding user response:

According to MDN, Array#push returns the new length of the array, not the array itself:

Return value
The new length 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];
  • Related