Avatar billede madslee Nybegynder
05. november 2003 - 09:30 Der er 15 kommentarer

array pegning af value

hvordan laver jeg sådan her

var g = new Array();
g['hej'] = 123;


bare i 1 streng .. altså i php ville det have set sådan her ud

$g = Array('hej'=>123);
Avatar billede mm12010 Nybegynder
05. november 2003 - 09:47 #1
sådan?

var g = new Array('hej=>123');
Avatar billede skovenborg Nybegynder
05. november 2003 - 11:48 #2
i javascript kan du også bruge:
g = new Array();
g.hej = 123;

som en alternativ måde.
Avatar billede skovenborg Nybegynder
05. november 2003 - 11:50 #3
...det er vigtigt i javascript at du bruger new (ligesom mm12010 foreslår) når du laver et array da det er et objekt.
Avatar billede madslee Nybegynder
05. november 2003 - 11:55 #4
hehe skovenborg gør jeg da ikke det ?...
det er i min PHP deklaring jeg ikke bruger new..
Avatar billede madslee Nybegynder
05. november 2003 - 11:57 #5
og det virker ikke!!...

jeg skal bruge en linie som deklare en array med key "hej" som har value 123 ....
Avatar billede mm12010 Nybegynder
05. november 2003 - 12:02 #6
så er det her rigtigt nok, fejlen må ligge et andet sted:

var g = new Array();
g["hej"] = 123;
Avatar billede skovenborg Nybegynder
05. november 2003 - 12:04 #7
madslee >> Hov det havde jeg ikkke lige set ;-)
Avatar billede madslee Nybegynder
05. november 2003 - 12:06 #8
ja men sprøgsmålet er hvordan laver jeg det i 1 linie altså så jeg ikke behøver

g["hej"] = 123;

er det muligt i javascript ?
Avatar billede madslee Nybegynder
05. november 2003 - 12:10 #9
hmmm fandt ud af det via lidt java info :)

var g = { 'hej' : 123 };
Avatar billede skovenborg Nybegynder
05. november 2003 - 12:48 #10
så bare luk spørgsmålet :-)

Hvor fandt du egentlig den henne??
Avatar billede willsonn Nybegynder
05. november 2003 - 16:22 #11
...og luk i øvrigt alle de andre spørgsmål du har åbne!
Avatar billede Slettet bruger
05. november 2003 - 16:24 #12
willsonn> Hvorfor lægger du et svar?
Avatar billede olebole Juniormester
06. november 2003 - 00:47 #13
<ole>

Forklaring:
I JS ligner associative arrays og objekter hinanden til forveksling. Derfor kan man også kalde med både dot- og array-notation:

var bla = new Array();
bla["noget"] = "noget andet";

alert( bla["noget"] );
alert( bla.noget );
returnerer det samme.

Stadig i JS findes en short-hand constructor for både et alm. array og et objekt:
// Konstruerer et array:
  var aBla = ["noget", "noget andet"];

// Konstruerer et objekt (associativt array):
var oBla = {"noget1":"noget andet", "noget2":"helt tredie"];

/mvh
</bole>
Avatar billede olebole Juniormester
06. november 2003 - 00:50 #14
Oooops ... den slut-klamme var noget klam  :)

// Konstruerer et objekt (associativt array):
var oBla = {"noget1":"noget andet", "noget2":"helt tredie"};

Sådan ... nap en Tuborg  ;o)
Avatar billede olebole Juniormester
06. november 2003 - 01:14 #15
Selvom det måske kan synes en lidt akademisk diskussion, om vi har at gøre med associative arrays eller objekter, kan dog godt have en vis betydning:

Et associativt array har i JS en length på 0 ...!

Det er jo egentlig noget vrøvl for arrays, hvorfor man faktisk nok ikke bør betragte dem som arrays, men som objekter.

var bla = new Array();
  bla["et"] = "ettal";
  bla["to"] = "total";
  bla["tre"] = "tretal";
alert(bla.length);  // Returnerer 0

var bla = new Object();
  bla["et"] = "ettal";
  bla["to"] = "total";
  bla["tre"] = "tretal";
alert(bla.length);  // Returnerer 'Undefined'

I begge tilfælde gælder som sagt:
alert( bla["to"] );  // Returnerer 'total'
alert( bla.to );  // Returnerer 'total'

Derfor kan man også adressere et formfelt med både:
  document.formnavn.feltnavn
  document["formnavn"].feltnavn
fordi formen ligger som property på document-object'et. Her er dot-notationen iøvrigt en anelse hurtigere ... at tilgå en property er hurtigere, end at 'slå op' i et array. I hvert fald i en laaaang løkke, hvor det gøres mange gange.

Det kan evt. hænge sammen med, at løkken break'es, når property'en er fundet i et objekt - mens der ledes videre til array'et er slut (også efter værdien er fundet), når der er tale om array-notation.

Håber, det kan kaste lidt mere lys over emnet  :)
/mvh
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