简体   繁体   中英

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)

在此处输入图像描述

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.

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];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM