Array

Tabeller implementert som array (vanligste tabellform i alle programmeringsspråk).

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:

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:

En-dimensjonale tabeller:

Deklarasjon:

var tall: Array = [33, 14, 11, 22, 49, 51, 31, 17];
var personer: Array = ["Hansen", "Olsen", "Jensen", "Karlsen", "Fredriksen", "Ferkenberg"];

Endre og hente innhold:

tall[3] = 77;			// Endrer 4de celle i tall fra 22 til 77
trace( personer[3] )		// Skriver ut "Karlsen" fra 4de celle i personer

Liste opp innhold:

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 );
}

Finne sum og gjennomsnitt:

var sum: Number = 0.0;		// Sum så langt
for(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);

Finne største og minste verdi:

var min: Number = Number.MAX_VALUE;	// Minste hittil settes større enn alt
for(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.)

Sortere tabeller:

Array har innebygd kommando sort(), som kan brukes slik:

personer.sort();		// Sorterer i stigende rekkefølge
personer.sort(Array.DESCENDING);	//Hvis vi ønsker synkende rekkefølge
tall.sort(Array.NUMERIC);		//Må bruke Array.NUMERERIC hvis int eller Numerice

Søke opp verdier:

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

To-dimensjonale tabeller

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] ];

Endre og hente innhold:

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);

Liste ut innhold:

var i: int;
for(i=0;i<bruktbiler[0].length;i++) {
	trace( "Merke: " + bruktbiler[0][i] + "  Pris: " + bruktbiler[2][i] );
}

Finne sum: (Verdien av lager)

var totalverdi: Number = 0.0;

for( i = 0; i < bruktbiler[0].length; i++){
   totalverdi += bruktbiler[2][i];
}
trace("Verdien av alle bilene: " + totalverdi);

Søke opp verdier:

var sokeord: String = "Lada";
var indeks: int = bruktbiler[0].indexOf(sokeord);	//indexOf returnerer -1 hvis sokeord ikke finnes
if( 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.