JavaScript
Børre Stenseth
Noen begreper >Ass Array

Associative Array

I modulen Array betraktet vi arrays som en liste som vi kunne indeksere med et heltall. Javascripts arraybegrep er mer sammensatt og vi kan plukke elementer fra en array med nøkler, keys, som ikke er heltall. Vi kan på mange måter sammenligne denne mekanismen med det vi i andre språk kaller "hashtabeller".

Nedenfor skal vi se på tre eksempler. To av dem inkluderer objekter. Dette finner du mer om i modulene Objekter og Klasser

Eksempel 1

Vi definerer følgende

_test1.js
// global array of cars
var cArray=[];
function setUp1(){
    cArray['AA123']='ford';
    cArray['BB123']='mercedes';
    cArray['CC123']='toyota';
}
function getCar1(regno,dump){
    document.getElementById(dump).innerHTML=
     regno+" er en "+cArray[regno];
}

Eksempel 2

Vi lager her en struktur der vi plasserer objekter osm verdier tilrordnet en nøkkel. Et objekt er altså:

{eier:"jensen",type:"ford"}
_test2.js
// global array of cars
var cArray2=[];

function setUp2(){
    cArray2['AA123']={eier:"jensen",type:"ford"};
    cArray2['BB123']={eier:"hansen",type:'mercedes'};
    cArray2['CC123']={eier:"nilsen",type:'toyote'};
}
function getCar2(regno,dump){
    document.getElementById(dump).innerHTML=
     regno+" eies av "+cArray2[regno].eier+" og er en "+cArray2[regno].type;
}

Eksemple 3

Her lagrer vi forekomster, objekter, av klassen Person, som verdier tilordnet nøklene.

_test3.js
// global array of cars
var cArray3=[];
// and owners
var pArray3=[];
function Person(navn,adresse){
    this.navn=navn;
    this.adresse=adresse;
    this.show=function(){
        return this.navn+" fra "+this.adresse;
    }
}
function setUp3(){
    pArray3.push(new Person('hansen','Halden'));
    pArray3.push(new Person('jensen','Moss'));
    cArray3['AA123']={eier:pArray3[0]};
    cArray3['BB123']={eier:pArray3[1]};
    cArray3['CC123']={eier:pArray3[1]};
}
function dumpCars(dump){
    var S=""
    for(var key in cArray3){
        S+=key+" eies av: "+cArray3[key].eier.show()+"<br/>";
    }
    document.getElementById(dump).innerHTML=S;
}

Noen begreper >Ass Array