Se også Adobe ActionScript Reference (dit du kommer når du høyreklikker og velger View Help i oversikten til venstre i Actions panelet.)
Direkte lenke til Array i Adobe ActionScript Reference.
Svært ofte er data vi bruker i dataprogrammer strukturert som tabeller, eksempelvis:
13 | 43 | 22 | 33 |
Volvo | Blå | 110 |
Fiat | Rød | 150 |
Lada | Rustrød | 68 |
Renault | Hvit | 100 |
Dette gjøres vanligvis med datatypen Array, som forekommer i absolutt alle programmeringsspråk.
Array kalles også ofte Indekserte Variabler, fordi innholdet er indeksert med heltall fra og med null og oppover: 0, 1, 2, 3, 4, ...
Ting vi ønsker å gjøre med tabeller er operasjonene:
var tall: Array = [33, 14, 11, 22, 49, 51, 31, 17];var personer: Array = ["Hansen", "Olsen", "Jensen", "Karlsen", "Fredriksen", "Ferkenberg"];
tall[3] = 77; // Endrer 4de celle i tall fra 22 til 77trace( personer[3] ) // Skriver ut "Karlsen" fra 4de celle i personer
for( var i: int = 0; i < personer.length; i++ ){ // Lister ut Hansen, Olsen, osv. trace( personer[i] ); }
Finnes også en enklere form av for-løkke som kalles for-each-løkke som gir akkurat samme resultat:
for each( var p: String in personer) { trace( p ); }
var sum: Number = 0.0; // Sum så langtfor(var i: int = 0; i < tall.length; i++) { sum += tall[i]; }var gs: Number = sum/tall.length;trace( "Summen ble: " + sum); trace( "Gjennomsnittet ble: " + gs);
var min: Number = Number.MAX_VALUE; // Minste hittil settes større enn altfor(var i:int = 0; i<tall.length;i++){ if( tall[i] < min ) { min = tall[i]; } // Justerer minste hittil hvis mindre verdi funnet }trace("Minste verdi var: " + min );(Største verdi finnes på helt tilsvarende måte.)
Array har innebygd kommando sort(), som kan brukes slik:
personer.sort(); // Sorterer i stigende rekkefølgepersoner.sort(Array.DESCENDING); //Hvis vi ønsker synkende rekkefølgetall.sort(Array.NUMERIC); //Må bruke Array.NUMERERIC hvis int eller Numerice
Array har innebygd kommando indexOf() som kan brukes slik:
var sokeord: String = "Fredriksen";var funnet: int = personer.indexOf(sokeord); // funnet får verdien 4, da Fredriksen er i 5te celle// indexOf() returnerer -1 hvis søkeordet ikke blir funnet, så vi kan for eksempel skrive:if(funnet<0) { trace( sokeord + "ble ikke funnet i tabellen."); } else { trace( sokeord + "ble funnet på indeks " + funnet); }//if
I mange tilfeller får vi også bruk for fler-dimensjonale tabeller, se eksemplet side 99 i læreboken:
bruktbiler: (Se side 99)
Volvo Blå 110 Fiat Rød 150 Lada Rustrød 68 Renault Hvit 100
Viktig tips!
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 Fiat Lada Renault
Blå Rød Rustrød Hvit
110 150 68 100 var bruktbiler: Array = new Array();bruktbiler[0] = ["Volvo","Fiat","Lada","Renault"];bruktbiler[1] = ["Blå","Rød","Rustrød","Hvit"];bruktbiler[2] = [110,150,68,100];
Mange tenker rader og kolonner, egentlig bedre å tenke indre og ytre tabell.
Kunne også deklarert alt på en gang, slik:
var bruktbiler: Array = [ ["Volvo","Fiat","Lada","Renault"], ["Blå","Rød","Rustrød","Hvit"], [110,150,68,100] ];
bruktbiler[1][2] = "Gul"; //Endrer farven på Lada til Gul// Legge inn ny bil:bruktbiler[0][4] = "Ford"; //Eller bedre: bruktbiler[0].push("Ford"); bruktbiler[1][4] = "Grå"; //Eller bedre: bruktbiler[1].push("Grå"); bruktbiler[2][4] = 75; //Eller bedre: bruktbiler[2].push(75);
var i: int; for(i=0;i<bruktbiler[0].length;i++) { trace( "Merke: " + bruktbiler[0][i] + " Pris: " + bruktbiler[2][i] ); }
var totalverdi: Number = 0.0;
for( i = 0; i < bruktbiler[0].length; i++){ totalverdi += bruktbiler[2][i]; } trace("Verdien av alle bilene: " + totalverdi);
var sokeord: String = "Lada";var indeks: int = bruktbiler[0].indexOf(sokeord); //indexOf returnerer -1 hvis sokeord ikke finnesif( indeks < 0) { trace("Ingen " + sokeord + "funnet!"); } else { trace("Fant " + sokeord + " på indeks " + indeks); }Vil skrive ut: "Fant Lada på indeks 2"
Som man ser kan det være lett å blande ytre og indre tabell,
eller rader og kolonner og indekser,
så derfor finnes det en måte å lage tabeller på ved hjelp av
Objekter med Egenskaper,
såkalte Assosiative Array.