U kunt de afzonderlijke arrays beter toegankelijk maken door een associatieve array te gebruiken voor de dagen van de week en een geïndexeerde array voor de takenlijsten. Met een associatieve array kunt u de puntnotatie gebruiken voor verwijzingen naar een bepaalde dag van de week. Dit gaat wel ten koste van de uitvoeringstijd, omdat elk element van de associatieve array moet worden benaderd. In het volgende voorbeeld wordt een associatieve array gebruikt als basis voor een takenlijst, met een sleutel-waardepaar voor elke dag van de week:
var masterTaskList:Object = new Object();
masterTaskList["Monday"] = ["wash dishes", "take out trash"];
masterTaskList["Tuesday"] = ["wash dishes", "pay bills"];
masterTaskList["Wednesday"] = ["wash dishes", "dentist", "wash dog"];
masterTaskList["Thursday"] = ["wash dishes"];
masterTaskList["Friday"] = ["wash dishes", "clean house"];
masterTaskList["Saturday"] = ["wash dishes", "wash car", "pay rent"];
masterTaskList["Sunday"] = ["mow lawn", "fix chair"];
De puntnotatie maakt de code beter leesbaar, omdat op deze manier meerdere sets haakjes kunnen worden vermeden.
trace(masterTaskList.Wednesday[1]); // output: dentist
trace(masterTaskList.Sunday[0]);// output: mow lawn
U kunt de takenlijst doorlopen met een lus
for..in lus
, maar u moet de operator voor arraytoegang (
[]
) in plaats van de puntsyntaxis gebruiken om toegang te krijgen tot de waarde die aan elke sleutel is gekoppeld. Omdat
masterTaskList
een associatieve array is, worden de elementen niet noodzakelijkerwijs opgevraagd in de volgorde die u zou verwachten, zoals in het volgende voorbeeld wordt getoond:
for (var day:String in masterTaskList)
{
trace(day + ": " + masterTaskList[day])
}
/* output:
Sunday: mow lawn,fix chair
Wednesday: wash dishes,dentist,wash dog
Friday: wash dishes,clean house
Thursday: wash dishes
Monday: wash dishes,take out trash
Saturday: wash dishes,wash car,pay rent
Tuesday: wash dishes,pay bills
*/