The easiest way to create an array is with an array literal,
which is simply a comma-separated list of array elements within square
brackets. For example:
var empty = []; // An array with no elements
var primes = [2, 3, 5, 7, 11]; // An array with 5 numeric elements
var misc = [ 1.1, true, "a", ]; // 3 elements of various types + trailing comma
The values in an array literal need not be constants; they may
be arbitrary expressions:
var base = 1024;
var table = [base, base+1, base+2, base+3];
Array literals can contain object literals or other array
literals:
var b = [[1,{x:1, y:2}], [2, {x:3, y:4}]];
If an array literal contains multiple commas in a row, with no
value between, the array is sparse (see 7.3). Array elements for which
values are omitted do not exist, but appear to be
undefined
if you query them:
var count = [1,,3]; // Elements at indexes 0 and 2. count[1] => undefined
var undefs = [,,]; // An array with no elements but a length of 2
Array literal syntax allows an optional trailing comma, so
[,,]
has a lenth of 2, not 3.
Another way to create an array is with the Array()
constructor. You can invoke this
constructor in three distinct ways:
-
Call it with no arguments:
var a = new Array();
This method creates an empty array with no elements and is
equivalent to the array literal[]
. -
Call it with a single numeric argument, which specifies a
length:var a = new Array(10);
This technique creates an array with the specified length.
This form of theArray()
constructor can be used to preallocate an array when you know in
advance how many elements will be required. Note that no values
are stored in the array, and the array index properties “0”, “1”,
and so on are not even defined for the array. -
Explicitly specify two or more array elements or a single
non-numeric element for the array:var a = new Array(5, 4, 3, 2, 1, "testing, testing");
In this form, the constructor arguments become the elements
of the new array. Using an array literal is almost always simpler
than this usage of theArray()
constructor.