I javascript er alt objekter, også array's, men det er visse forskjeller.
Først, følgende er det samme:
PHP:
var list = {}; //definerer et nytt tom object
var list = new Object(); //definerer også ett nytt tomt object
var list2 = []; //definerer ett nytt tomt array
var list2 = new Array(); //definerer også ett nytt tomt array
Den første varianten kalles et objekt, mens den andre kalles et array, selv om alt i javascript egentlig er objekter, også funksjoner og mye annet.
For eksempel kan man definere en funksjon
PHP:
var doSomething = function() {
alert('Hello Kitty');
}
Ser man nærmere så er det tydelig at det er et objekt, og derfor kan vi også gjøre:
PHP:
var doSomething = {
doMore: function() {
alert('mere stasj');
},
doLess: function() {
alert('mindre stasj');
}
}
doSomething.doMore(); //kaller en av funksjonene i doSomething objektet
Tar vi det litt videre så er altså et objekt normalt bestående av et såkalt key/value par, så vi kan da gjøre :
PHP:
var list = { foo : {hello : 'some stuff'}, bar : {hey : 'Hi'}, hello : {hey: 'Hi'}};
alert( list.foo.hello ); //gir 'some stuff'
Altså er diverse metoder innad i objektet tilgjengelige med "dot notation", altså ved å bruke punktum mellom navnene, men de er også tilgjengelige som :
Som kan være greit dersom det er ugyldige tegn eller strenger vi skal hente.
Vanlige array's kan vi definere som :
PHP:
var list = ['hey', 'hi', 'hello'];
men her er verdiene nå kun tilgjengelige som en nummerert nullbasert indeks, altså slik :
PHP:
alert( list[1] ); //gir 'hi'
Du kan også putte arrayer i objekter, og for ditt eksempel så bør du nok gjøre :
PHP:
var list = new Object();
list.foo = ['hello','some stuff'];
list.bar = ['hey', 'Hi'];
list.hello = ['hey', 'Hi'];
Ettersom 'var list' helt klart er et objekt ettersom det brukes "dot notation", og du kunne også definert som :
PHP:
var list2 = {foo: ['hello','some stuff'], bar : ['hey', 'Hi'], hello : ['hey', 'Hi']};
Og fått akkurat det samme objektet, som er tilgjengelig slik :
PHP:
list.foo[0]; //gir 'hello'
list.foo[1]; //gir 'some stuff'
Forøvrig bør det ikke brukes alert() når man holder på med slikt, men ha en vane å logge til konsollen i stedet, da kan man se hele objektet der.