Reputation: 303198
In JavaScript you can get and set indexes of arrays and "numeric" properties of objects using either an integer or a string and get the same results:
var a=[], o={};
a[1] = "foo"; a["1"] == "foo" // true
a["2"] = "bar"; a[2] == "bar" // true
a["-3"] = "baz"; a[-.3e1] == "baz" // true
o[1] = "foo"; o["1"] == "foo" // true
o["2"] = "bar"; o[2] == "bar" // true
o["-3"] = "baz"; o[-.3e1] == "baz" // true
While strings and numbers are interopable—for both getting and setting—which is faster (for both arrays and for objects)?
Upvotes: 18
Views: 3334
Reputation: 303198
Unsurprisingly, integers are faster for array access than strings. Perhaps surprisingly, they are also faster than strings for object properties.
Upvotes: 26