Array

An array is a list-like object which can store an ordered sequence of values known as elements, indexed from 0 to (arr.length-1).

The following rows all result in the same 'data' array.
RESETRUNFULL
<!DOCTYPE html><html><body><script>

var data=[“Sophia",25,myFunction];

</script></body><html>

<!DOCTYPE html><html><body><script>

var data=new Array(“Sophia",25, myFunction);

</script></body><html>

<!DOCTYPE html><html><body><script>

var data=Array(“Sophia",25, myFunction);

</script></body><html>

<!DOCTYPE html><html><body><script>

var data=[];data[0]="Sophia";data[1]=25;data[2]=myFunction;

</script></body><html>

<!DOCTYPE html><html><body><script>

var data=new Array(); // ‘new’ is optionaldata[0]="Sophia";data[1]=25;data[2]=myFunction;

</script></body><html>

<!DOCTYPE html><html><body><script>

var data=Array(3);  // reserves 3 elementsdata[0]="Sophia";data[1]=25;data[2]=myFunction;

</script></body><html>

Arrays can contain objects and be associated with properties. Properties are not counted as elements.


RESETRUNFULL
<!DOCTYPE html><html><body><script>


   var arr=[3];    // an element
   arr.p = {x:1}; // an object as a property
   arr[1] = 5;      // an array element
   arr[1.5] = 6;   // an object property
   alert(arr[0]);       // 3
   alert(arr[1]);       // 5
   alert(arr.p);        // [object Object]
   alert(arr.length); // 2
   alert(arr.hasOwnProperty(1.5));  // true
   arr[30] = {y:2};     // an object as an element
   alert(arr['length']);  // 31
   alert(arr[1.5]);        // 6
   arr.length = 3;        // truncates the array
   alert(arr[30]);         // undefined

</script></body><html>

Elements in an array literal can be skipped, in which case the values for the elements will be 'undefined'.


RESETRUNFULL
<!DOCTYPE html><html><body><script>

var a = [0,,2,3,,,6,,];

</script></body><html>

Multi-dimensional arrays can be created by nesting arrays.

+ tries to convert an object to a primitive.
RESETRUNFULL
<!DOCTYPE html><html><body><script>

var ma = [[1,2,3],['a','b','c']];alert(ma[1][2]);  // c

</script></body><html>

<!DOCTYPE html><html><body><script>

console.log([]+[]); // ""console.log([]+{}); // [object Object]console.log({}+[]); // [object Object]console.log({}+{}); // [object Object][object Object]

</script></body><html>

<!DOCTYPE html><html><body><script>

console.log(++[[]][+[]]+[+[]]); // 10

</script></body><html>

Note that the callbacks passed into some Array prototype functions (eg. some(), every(), forEach(), reduce(), find(), map()) may take two additional parameters, ie. the index and the whole array.