That's not an associative array. That's an array object abused. It just works because arrays are also objects in JavaScript.
When you're doing arr.prop_1 = "asdf";
or arr['prop 2'] = "1234";
what you're actually doing is monkey patching an object.
People use objects as maps often - but that'll get fixed soon since ES6 (the new version of the standard JS is based on) has Map
types.
###When to use an Array
When to use an Array
When you have sequential data - a list of numbers for example
When to use a map
When you want to store a key-value mapping.