Associative arrays use strings in place of index numbers, to associate the value of the elements. These indexes must be specified by the programmer.
- The syntax to create an associative array is:
var array_name:Array = new Array();
array_name['index1'] = value1;
array_name['index2'] = value2;
array_name['index3'] = value3;
- You can add as many elements as you want.
- You can use either single or double quotes for "index".
You can access or change the value of a specific element of an associative array the same as with a numeric indexed array, using its index:
array_name['index'].
• The elements of an associative array can also be accessed with the dot (.) operator:
array_name.index (like the proprietes of an object).
Here's an example in which we apply both methods:
// associative array, with 3 elements
var m_ar:Array = new Array();
m_ar['site'] = 'coursesweb.net';
m_ar['course'] = 'Adobe Flash';
m_ar['tutorials'] = 'ActionScript';
// Access the element with index 'site'
trace(m_ar['site']); // coursesweb.net
// Access another element, using the dot (.) operator
trace(m_ar.course); // Adobe Flash
Traverse associative Arrays
You can traverse an associative array with the
for..in, or
for each..in loop.
Example with for..in
// associative array, with 3 elements
var m_ar:Array = new Array();
m_ar['site'] = 'coursesweb.net';
m_ar['course'] = 'Adobe Flash';
m_ar['tutorials'] = 'ActionScript';
// create a "for..in" loop to traverse the "m_ar" array
for(var key:String in m_ar)
{
// displays in Output the index and the value of the current item
trace('Index='+ key+ ' - value='+ m_ar[key]);
// You can execute any operations with "key" si "m_ar[key]"
}
-
key is a variable which stores the "index" of the current element (you can use any name for the variable).
In Output will display:
Index=site - value=coursesweb.net
Index=tutorials - value=ActionScript
Index=course - value=Adobe Flash
Example with for each..in
// associative array, with 3 elements
var m_ar:Array = new Array();
m_ar['site'] = 'coursesweb.net';
m_ar['course'] = 'Adobe Flash';
m_ar['tutorials'] = 'ActionScript';
// create a "for each..in" loop to traverse the "m_ar" array
for each(var elm in m_ar)
{
// displays in Output the value of the current item (stored in elm)
trace('valE - '+ elm);
// You can execute any operations with "elm"
}
• Notice the diferences between "for..in" and "for each..in". The "for each..in" loop doesn't get the index of the element. The "
elm" store the element itself.
In Output will display:
valE - Adobe Flash
valE - coursesweb.net
valE - ActionScript