An Array ([]
) is a kind of Object ({}
). The key differences are:
Arrays have a magic length
property that is equal to the highest-set numeric key (plus one):
var a = [];
a[100] = 0;
a.length; // is 101
var o = {};
o[100] = 0;
o.length; // is undefined
An Array's toString
method prints out the values of numeric keys:
var a = [];
a[0] = 5;
a[1] = 6;
a[2] = 7;
a.toString(); // "[5,6,7]"
var o = {};
o[0] = 5;
o[1] = 6;
o[2] = 7;
o.toString(); // "[object Object]"
Arrays have lots of specific functions for processing records:
> Object.getOwnPropertyNames(Array.prototype)
["join", "toLocaleString", "sort", "some", "lastIndexOf", "splice", "map",
"constructor", "every", "unshift", "shift", "indexOf", "pop", "forEach", "reverse",
"reduce", "slice", "concat", "filter", "toString", "reduceRight", "push", "length"]