'why inline `push()` doesn't work on new created array?
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)
Solution 1:[1]
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.
Solution 2:[2]
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];
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Felix Kling |
| Solution 2 | KevBot |

