I'm trying to understand what a JavaScript array is because traditional programming languages define an array as a contiguous area of storage that can be addressed using an offset.
Now, a normal JavaScript object can be addressed as:
myObj.myProperty = "my Value";
or
myObj["myProperty"] = "my Value";
So, a JavaScript array is simply using numbers instead of names in it's addressing:
myObj[0] = "my Value";
myObj.length // === 1
A JavaScript Array also has methods, such as slice(), and join().
Q: Is what I said so far true?
5 Answers 5
A JavaScript array is a hash object with array functions attached using Array.prototype. Put simply, this is an "Array" in JavaScript:
var x = {
length : 3,
'0' : 'first',
'1' : 'second',
'2' : 'third'
};
x.__proto__ = Array.prototype;
All of the array functions only act on indexes, as you would expect, however you can also do anything to an array object that you would do to a general JS object:
ary.foo = 'bar';
6 Comments
Array inherits from Object. The fact that dot notation doesn't work on numbers doesn't negate that, it just means that you can't access numeric properties the same way.To a basic yes or no question: Yes all of what you said is true.
Here is a whole array tutorial
Comments
Javascript objects are associative arrays. Javascript has an Object called Array that has special methods for dealing with their data.
a good read ( that got me going at start ) Mastering Javascript Arrays
2 Comments
Any JavaScript array is an object that can use different objects* as keys, making it a hash.
*all objects different from strings will be converted to string [object Object], so they will act as the same key! (thanks to cwolves :)
3 Comments
toString() method on your objects and then they will be usable as keys (assuming you come up with a meaningful way of providing uniqueness).
myObj[0], it gets converted tomyObj['0']