An array constructor is a constructor function that allows us to create a new JavaScript Array. Every Javascript array also has a constructor property, which points to the constructor function.
Table of Contents
How to use Array Constructor
JavaScript has a global Array constructor function. We use the new keyword to invoke it. It creates a new array using the arguments. Except when it has only one argument which is numeric, then it will create an array with a length equal to the provided argument.
The basic syntax is as follows.
new Array(element1, element2, element3,..., elementN)
The following example creates arrays of books with 4 elements.
const books = new Array("Ulysses", "Don Quixote", "War and Peace", "Moby Dick");
The “Ulysses” is stored at index 0, “Don Quixote” at index 1, etc.
const books = new Array("Ulysses", "Don Quixote", "War and Peace", "Moby Dick");
console.log(books[0]) //Ulysses
console.log(books[1]) //Don Quixote
console.log(books[2]) //War and Peace
console.log(books[3]) //Moby Dick
Note that calling the Array function without new also returns the array without any side effects. However, you should not invoke a constructor function without a new keyword.
books = Array("Ulysses", "Don Quixote", "War and Peace", "Moby Dick");
console.log(books)
Array Constructor with one numeric argument
The following code creates an array with two elements ( 5 & 10)
arr=new Array(5,10)
console.log(arr) //[ 5, 10 ]
But if you pass only one numeric argument, then it will create an empty array with a length equal to the argument. For example, new Array(5)
will create an array with length 5 but without any elements. Such an array is known as Sparse Array
arr= new Array(5)
console.log(arr) //[ <5 empty items> ]
The above is the same as the following array literal syntax
arr= [,,,,,]
console.log(arr) //[ <5 empty items> ]
The number passed as a string will create only one element.
arr= new Array("5")
console.log(arr) //[ '5' ]
If you pass a -ve number, the Javascript will throw an error. In fact, if we pass a single numeric argument whose value is not between 0 and 232 – 1 (inclusive) an error will be thrown
let arr= new Array(-10)
console.log(arr) //RangeError: Invalid array length
This is will create an array with two elements
let arr= new Array(-10,-20)
console.log(arr) //[ -10, -20 ]
Creates an empty array. i.e array with no elements & zero length
let arr= new Array(0)
console.log(arr)
The following creates an array with two elements.
let arr= new Array(0,0)
console.log(arr) //[ 0, 0 ]
Constructor Property
Every Array has a constructor property, which returns the constructor function that created the Array. It actually returns the Array Constructor function, because all arrays are created using that constructor function.
arr
is the Array with one element. We can access its constructor property using arr.constructor
let arr= new Array("5")
let arrConsFn= arr.constructor
Since it is a constructor function, we can use it to create new arrays
let arr= new Array("5")
let arrConsFn= arr.constructor
let arr1= new arrConsFn("1","2")
console.log(arr1) //[ '1', '2' ]
console.log(arr) //[ '5' ]