I always had this silly doubt in mind but never had come up with the solution.
I have seen several kind of arrays but I don’t know the difference between them. I don’t know how to explain exactly but it’s most when passing parameters with jQuery.
See:
{ 'choices[]': ["Jon", "Susan"] } in $("#objectID").load("test.php", { 'choices[]': ["Jon", "Susan"] } );
What’s the {}? (does this mean it’s an array?). Why is choices[] quoted? I have already seen unquoted ones, what’s the difference? I presume that choices is the associative name and ["Jon", "Susan"] is the value, is it right?
The braces
{ }will construct an object using the object literal notation. You are not constructing an array, but an object, even though JavaScript objects can also be thought of as associative arrays.Further reading:
Apart from the few primitive types (numbers, strings, booleans, null and undefined) everything is an object in JavaScript (even functions).
Objects are basically containers of properties, which happen to be very useful for collecting and organizing data.
The object literal notation (the braces
{ }method that you describe) is very handy for creating objects:The quotes around property names are optional if the name would be a legal JavaScript identifier and not a reserved word. That is why
'choices[]'is quoted in your example, because it is not a legal JavaScript identifier. A property’s name can be any string as long as it is quoted.Objects can also contain other objects, so they can easily represent trees or graphs:
JavaScript objects also happen to be a convenient hash table data structure, and can be used as associative arrays as mentioned earlier. You could easily do the following: