Dette er mest aktuelt med to-dimensjonale tabeller, så vi bruker eksemplet med bruktbiler fra side 99 i læreboken:
bruktbiler: (Se side 99)
Volvo Blå 110 Fiat Rød 150 Lada Rustrød 68 Renault Hvit 100
Jeg gjentar det viktig tipset:
Ikke tegn tabeller slik som over og i boken,
tegn dem slik at strukturen (ytre/indre, kolonne/rad) kommer tydelig frem,
slik jeg har vist under:
Volvo Blå 110
Fiat Rød 150
Lada Rustrød 68
Renault Hvit 100
Med assosiative array kan vi holde hver bil samlet i en celle istedenfor på tvers av celler slik vi gjorde i Array.
Den store fordelen er at vi indekserer med egenskapsnavn (merke, farve, pris) istedenfor heltall!
Kan deklarere alt på en gang, slik:
var bruktbiler: Array = [ { merke: "Volvo", farve: "Blå", pris: 110}, { merke: "Fiat" , farve: "Rød", pris: 160}, { merke: "Lada" , farve: "Rustrød", pris: 68 }, { merke: "Renault", farve: "Hvit", pris: 100} ];
bruktbiler[2]["farve"] = "Gul"; //Endrer farven på Lada til Gulellerbruktbiler[2].farve = "Gul";// Legge inn ny bil :var ny: Object = new Object(); ny.merke="Ford"; ny.farve="Grå"; ny.pris=75;bruktbiler.push(ny);
var i: int; for(i=0;i<bruktbiler.length;i++){ trace(bruktbiler[i].merke); trace(bruktbiler[i].farve); trace(bruktbiler[i].pris); }
var totalverdi: Number = 0.0;
for( i = 0; i < bruktbiler.length; i++){ totalverdi += bruktbiler[i].pris; } trace("Verdien av alle bilene: " + totalverdi);
Den innebygde Array-metoden sortOn() sorterer på den egenskapen vi ønsker:
bruktbiler.sortOn("merke");
Med flerdimensjonale tabeller må vi ofte lage søkefunksjonen, eksempelvis noe slikt:var sokeord: String = "Lada";var funnet: Boolean = false; //Ikke funnet så langtvar indeks: int = -1;for (i=0;i<bruktbiler.length;i++) { if(bruktbiler[i].merke==sokeord) { funnet = true; indeks = i; }//if }//forif( indeks < 0) { trace("Ingen " + sokeord + "funnet!"); } else { trace("Fant " + sokeord + " på indeks " + indeks); }Vil skrive ut: "Fant Lada på indeks 2"