Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 08:51 Der er 18 kommentarer og
1 løsning

søge i array

Hvordan kan man i et array søge efter en key der har en given værdi? Jeg er vandt til at arbejde i PHP, som har lidt flere indbyggede funktioner og kan umiddelbart ikke lige set det for mig her i AS, som garanteret er helt oplagt :)

eks.

id_arr = [43,543,444];
txt_arr = ['hej','test','ok'];
txt2_arr = ['tekst','hund','kat'];

Jeg skal have sat værdierne sammen ud fra niveauet.. Dem med key 0 sammen, dem med key 1 sammen osv
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 08:54 #1
lige en vigtig ting som jeg glemte..

det eneste man har at gå ud fra er en værdi i id_arr (eks. 543)
Avatar billede mat Nybegynder
29. januar 2007 - 09:08 #2
På den gode gamle måde. Søg igennem et array indtil du finder din værdi, bryd ud af løkken, og returner værdiens index.

mvh mat
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 09:14 #3
hvordan breaker man en løkke?

er det bare:

break;
Avatar billede barklund Nybegynder
29. januar 2007 - 09:16 #4
Først sætter du data sammen, så du har array's af sammeenhørende data:

[43, 'hej', 'tekst']

Og så indekserer du data efter deres id - alt i alt skal du ende med en objekt som:

var my_data = new Object();
my_data[43] = [43, 'hej', 'tekst'];
my_data[543] = [543, 'test', 'hund'];
my_data[444] = [444, 'ok', 'kat'];

Det kan du gøre som:

var my_data = new Object();
for (var i = 0; i < id_arr.length; i++) {
    my_data[id_arr[i]] = [id_arr[i], txt_arr[i], txt2_arr[i]];
}

Så kan du hente en "række" som:

var hentet = my_data[543];
var hentet_txt = hentet[1];

You dig?

:)

--
Morten Barklund
Avatar billede barklund Nybegynder
29. januar 2007 - 09:16 #5
Og ja, man breaker med break; :)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 09:20 #6
hvad er forskellen på et object og et array? :)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 09:35 #7
barklund >
Hvis jeg ikke tager helt fejl, har du i dit eksempel et "flerdimmensionelt" objekt hvor den efterfølgende dimmension så er et array? Hvis jeg har formuleret mig korrekt?
Avatar billede barklund Nybegynder
29. januar 2007 - 09:49 #8
Ja, den yderste dimension er et objekt (som er lidt som et array, der ikke har alle array-metoderne)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 09:53 #9
kan du beskrive et objekt lidt mere præcist? :)
Avatar billede barklund Nybegynder
29. januar 2007 - 10:24 #10
Kig i manualen - object er top-klassen ligesom i Java. Eller køb http://globe.dk/?action=detail&vare=FG227-7, hvor det gennemgås :)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 10:43 #11
Forfatter: Morten Barklund

klart Morten ;)

men lav et svar

Jeg synes bare jeg har lidt svært ved at finde rundt i manualen i Flash
Avatar billede barklund Nybegynder
29. januar 2007 - 10:45 #12
Tja, hjælpen går ikke i dybden fra starten med specifikke klasser på den måde - så lige den slags kan være svært at finde :)
Avatar billede barklund Nybegynder
29. januar 2007 - 11:52 #13
Tark for points - håber du får det til at virke :)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 12:29 #14
Jeg må lige rode lidt med det..

Men objekter er vel hurtigere at søge i? Jeg troede bare ikke man kunne sætte værdierne til andet end 1 eller true
Avatar billede barklund Nybegynder
29. januar 2007 - 12:40 #15
Altså, opslag som et associativt array i php er ganske hurtige i et objekt - men lige så hurtige i et array.
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 12:48 #16
Nu ved jeg godt du snakker om PHP, men hvad er fordelen så ved at bruge et objekt i AS? :)
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 12:49 #17
- hvis opslagstiden er den samme
Avatar billede barklund Nybegynder
29. januar 2007 - 13:11 #18
Altså, man kunne også bruge et XML-objekt, et SharedObject eller noget helt tredje. Men hvis det man skal kan lave med den simpleste klasse, Object, hvorfor så vælge en mere specifik klasse, når den ikke giver ekstra funktionalitet.

Du kan da godt skrive:

var my_data = new XMLSocket();
for (var i = 0; i < id_arr.length; i++) {
    my_data[id_arr[i]] = [id_arr[i], txt_arr[i], txt2_arr[i]];
}

Og få præcist samme funktionalitet ud af det hele - men hvorfor skulle man? Altid tage det simpleste til hvad man skal bruge. Som XP-folkene siger: Do the simplest possible thing that could ever work. :)

--
Morten Barklund
Avatar billede electrobeat_dk Nybegynder
29. januar 2007 - 13:24 #19
ja, det har du nok ret i

men har du så et link lige ved hånden hvor jeg kan læse lidt mere om objekter, for jeg er virkelig lost i den manual der, og mest af alt nok fordi jeg ikke ved hvad jeg skal lede under :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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