JS: Array Constructor

By Xah Lee. Date: . Last updated: .

warning: new Array(9) does not actually create any element in the array at all.

// 「new Array(2)」 does not create any elements, only sets length
const r1 = new Array(2);
console.log(r1.length); // 2
console.log(Object.getOwnPropertyNames(r1)); // [ 'length' ]

// compare to,
// here's array of 2 items, both are undefined
const r2 = [undefined, undefined];
console.log(r2.length); // 2
console.log(Object.getOwnPropertyNames(r2)); // [ '0', '1', 'length' ]

If you create a array by new Array(4), then use the array method map to fill in, it doesn't work.

// creating array by map this way doesn't work

const a1 = new Array(3);

const a2 = a1.map( (() => "v"));

console.log(a2); // [ <3 empty items> ]

// expected ['v','v','v',]

console.log ( a2[0] === undefined); // true

Tip: avoid using array constructor. Anything it does can be done better in other ways. Use literal array expression [] then use array method push.

[see JS: Array.prototype.push]

Or use Array.of

[see JS: Array.of]

Range Function for Creating Array

JS: Range Function for Array

Reference

ECMAScript 2015 §Indexed Collections#sec-array-constructor

JS Array

  1. Understand JS Array
  2. Create Array
  3. Sparse Array
  4. Array-Like Object
  5. Array How-To
  6. Array Object
  7. Array.prototype
Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

If you have a question, put $5 at patreon and message me.

Web Dev Tutorials

  1. HTML
  2. Visual CSS
  3. JS in Depth
  4. JS Reference
  5. DOM
  6. SVG
  7. Web Dev Blog