Avatar billede half_d Nybegynder
04. november 2001 - 19:42 Der er 12 kommentarer og
1 løsning

Finde Array element nr. med det elements indhold.

Jeg har en javascript Array, bestående af en masse navne.
Jeg har brug for at kunne finde Array elementets nummer, ved at bruge
det navn der er i det element.

F.eks.
minArray = new Array();

minArray[0] = \"Bla\";
minArray[1] = \"Foo\";
minArray[2] = \"Melse\";
minArray[3] = \"Tjek\";
minArray[4] = \"Dér\";

Så skal jeg f.eks. lave en function der bliver parset med \'Foo\' f.eks. og som derefter returnerer 1, eller 4 ved Dér.

Jeg ved det kan lade sig gøre, og jeg har set det før,
men kan ikke lige finde løsningen.

Al hjælp tages imod med kyshånd.
// Halfdan
topdog.dk
Avatar billede Slettet bruger
04. november 2001 - 19:47 #1
<script>
minArray = new Array();
minArray[0] = \"Bla\";
minArray[1] = \"Foo\";
minArray[2] = \"Melse\";
minArray[3] = \"Tjek\";
minArray[4] = \"Dér\";

function tjekArr(str) {
for (i = 0; i < minArray.length; i++) {
if (minArray[i] == str) return i;
}
return \"Ikke fundet!\";
}
</script>
Avatar billede olebole Juniormester
04. november 2001 - 19:49 #2
<ole>

function findThis(which) {
  for (i=0; i<minArray.length; i++) {
    if (minArray[i]==which) return i;
  }
}

alert( findThis(\'Foo\') );

/mvh
</bole>
Avatar billede Slettet bruger
04. november 2001 - 19:49 #3
Scriptet returner \"Ikke fundet!\", hvis strengen ikke bliver fundet i arrayet!

... Og forresten: Det hedder ET array ligesom ET site, ET link og \"E.T. phone home\" :-)
Avatar billede olebole Juniormester
04. november 2001 - 19:52 #4
...ET par minutter og EN else-sætning forsent  =oD
Avatar billede half_d Nybegynder
04. november 2001 - 19:54 #5
Jeg har selv brugt den løsning, men er der ikke en mere direkte måde at gøre det på?

ligesom man siger

var = myArray[22];
og var bliver Superman

kan man så ikke sige noget med
var = myArray[\"Superman\"];
var får værdien 22.

Yes/no?
Avatar billede Slettet bruger
04. november 2001 - 19:55 #6
No way man! No way! :)
Avatar billede olebole Juniormester
04. november 2001 - 20:02 #7
Men du kan gøre sådan:

<script language=\"JavaScript\" src=\"\">
mitArray = new Array();

mitArray[\"Bla\"] = 0;
mitArray[\"Foo\"] = 1;
mitArray[\"Melse\"] = 2;
mitArray[\"Tjek\"] = 3;
mitArray[\"Dér\"] = 4;

alert(mitArray[\"Melse\"]);

...hvis du kan bruge det  :)
</script>
Avatar billede olebole Juniormester
04. november 2001 - 20:03 #8
...bare glem mit script-tag i toppen - stammer fra min test  ;o)
Avatar billede Slettet bruger
04. november 2001 - 20:06 #9
Ja, det er klart, men så bliver tabellen jo indekseret med bogstaver i stedet for tal. Men hvis det er fint med dig, hald_d, så må jeg jo hellere se mit nederlag i øjnene... @8-))
Avatar billede Slettet bruger
04. november 2001 - 20:06 #10
hald_d = half_d SORRY!
Avatar billede olebole Juniormester
04. november 2001 - 20:15 #11
Nu ikke så hastig, phoenixv. Det kommer an på, hvordan han skal bruge sit array. Det kan være, alfabetisk indeksering gør det hele meget mere besværligt - sådan er det ofte  ;o)
/mvh
Avatar billede Slettet bruger
04. november 2001 - 20:20 #12
Ja... Så er det jo bare op til det halve d at dømme! :)
Avatar billede half_d Nybegynder
04. november 2001 - 23:15 #13
Tja, det var ikke det jeg ledte efter helt, men det virker. Jeg havde selv regnet den ud, men prøvede at finde en smartere løsning. Tak for hjælpen anyway :)

det virker helt perfekt.
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