I think what he means is that it's not actually the array you're working with, so the name is misleading in this context. It's the underlying object. So if I have
var a : Array = [];
a['property'] = 'value';
, then I'm setting a property of the object, not an element in the array. It works just as well with
JavaScript doesn't make the same distinctions between numerically indexed arrays, string-indexed associative arrays and objects that you would see in most other languages. This explains a lot of the perceived oddities of JavaScript to programmers coming from backgrounds working with other programming languages, e.g., why calling sort() on an array of numbers doesn't do what you might expect and why the for-each loop in JavaScript iterates over indices rather than values.
And don't forget the `hasOwnProperty` test when iterating over the keys.