Avatar billede hardcoder Nybegynder
11. marts 2005 - 20:49 Der er 9 kommentarer

Inline assosiativt array/object

Hej eksperter

Jeg har noget serverkode, der skal producere et multidimesionelt array/object, som en erklæring og ikke med flere erklæringer.

Jeg bruger derfor en syntaks a lá denne

dd = [1, 'et'];

Hvilket ikke er godt nok, da jeg så mister indexes til arrayet og det er ikke muligt at bruge dette

dd = new Array();
dd.etTal  = 1;
dd.enTekst = 'et';


Jeg synes jeg en gang, har set en syntaks i stil med denne, hvilket er den jeg har behov for.

dd = [etTal:1, enTekst:'et'];

Men jeg kan ikke få det til at spille og har forgæves søgt efter dokumentation, så nu er jeg kommet i tvivl om det overhovedet er muligt.

Håber en eller anden kan hjælpe med dette.

M.h.v.
Avatar billede erikjacobsen Ekspert
11. marts 2005 - 21:08 #1
Sådan her?

var a={abe:77, hund:"kat"};

for (k in a) {
  alert(k+" "+a[k]);
}
Avatar billede hardcoder Nybegynder
11. marts 2005 - 21:12 #2
Jeps !

Klart det er selvfølgelig krøllede paranteser, hvorfor mon jeg ikke lige tænkte på det.

Smid et svar og jeg prøver at give dig dine velfortjente point. En gang skal jo være den første.
Avatar billede erikjacobsen Ekspert
11. marts 2005 - 21:14 #3
Sikkert - det må du så glæde dig til ;)
Ingen point til mig. Svar selv, accepter eget svar.
Avatar billede hardcoder Nybegynder
11. marts 2005 - 21:22 #4
Nå tilbage til kodningen, tak for hjælpen
Avatar billede olebole Juniormester
11. marts 2005 - 23:31 #5
<ole>

Erik, er det rigtigt? Jeg ved godt, det virker, når man ikke sætter property-navnet i gåseøjne i objektets shorthand-constructor - men er det korrekt at udelade dem?

Jeg har altid selv anset det for korrekt at sætte dem .... men nu bliver jeg zq pludselig i tvivl, når du ikke sætter dem  :)

/mvh
</bole>
Avatar billede roenving Novice
12. marts 2005 - 00:02 #6
Hovedspørgsmålet må vel være:

Kan det du i alle almindelige ECMA-script-versioner ?-)

-- og det er ikke endnu lykkedes mig at få fejl, selv om jeg forstår ecma-script-definitionen således, at en collection-parameter bør defineres som en string-parameter ...
Avatar billede olebole Juniormester
12. marts 2005 - 00:17 #7
Njaaahhhh, Jes ... det er nu sjældent det at noget virker, der bør være det afgørende. Det ved vi jo alle tre fra PHP og brugen af gåseøjne i array-kald. Man kan godt udelade dem - men må så affinde sig med at have sat vand over til øretæver  ;o)

Umiddelbart ser jeg ikke de samme farer som ved PHP. Det er svært at få puttet en konstant eller variabel ind i en objekt-shorthand ved en fejltagelse - men alligevel.

Det glæder mig dog, jeg ikke er den eneste, der læser specifikationen sådan  :)
Avatar billede erikjacobsen Ekspert
12. marts 2005 - 09:11 #8
Jeg ved ikke hvor I læser henne, men før det der kolon (de to prikker, der står ovenpå hinanden), må der komme et PropertyName, og sådan et kan være

  PropertyName : Identifier | StringLiteral | NumericLiteral

Så vi har lov til at være kreative:

  var a={abe:77, hund:"kat", "Ole Bole":"Olebole"; 7914:"Roenving"};
Avatar billede erikjacobsen Ekspert
12. marts 2005 - 09:17 #9
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester