02. november 2003 - 14:16Der er
17 kommentarer og 1 løsning
Kalde info fra array
Jeg har et array i en ekstern fil, array.js. obj=new array obj[0]="data1*data2*data3*data4" obj[1]="data1*data2*data3*data4" obj[2]="data1*data2*data3*data4" obj[3]="data1*data2*data3*data4"
I filen hvor jeg skal bruge mit array vil jeg gerne have lavet en funktion der deler de data der står i hvert obj ved hver stjerne. Det skal fungere sådan at jeg for hvert obj kan kalde f.eks. obj[0].opdel[0](jeg ved ikke om dette er syntaksen for at få info fra et array)hvor jeg så vil få værdien data1 for obj[0]. Mit forslag: function opdel(){ for(i in obj){opdel=obj[i].split("*")} }
I mit hovede forstås dette som: for hver obj i arrayet bliver der delt op ved hver stjerne og dataene gemmes i opdel. Der oprettes et nyt array opdel: opdel[0]=data1, opdel[1]=data2 osv.
Jeg kan så efterfølgende skrive f.eks. <script language="javascript"> document.write("obj[0].opdel[0]"); </script>
for lige at vende tilbage til mit egentlige problem ;o) Jeg vil gerne benytte funktionen fordi jeg senere også skal bruge den. Skulle følgende ikke virke?
function opdelobj(){ for (i in obj) {opdel=obj[i].split("*")} }
Og skulle det nu ikke bare være muligt at skrive document.write(""+obj[0].opdel[0]+"");
Jeg har et par spørgsmål til det flerdimensionelle array. Jeg er ikke med på hvorfor det er flerdimensionelt! Er der ikke bare oprettet et nyt array til dataene i obj-arrayet efter de er delt ved *?
Hvad gør push?
Hvorfor er betingelsen i=0 nødvendig? Skal newObj.push( obj[i].split("*") ); ikke bare udføres når i er mindre end eller lig med obj.lenght;?
1. Jo - og det kaldes et flerdimensionelt array. Har du prøvet at regne med komplekse tal eller andre former for matrix-opbygninger, forstår du umiddelbart, hvorfor de kaldes flerdimensionale.
2. 'ARRAY.push(STRENG)' indsætter strengen som sidste element i array'et
3. Det forstår jeg ikke ... det er vist præcis, hvad jeg har skrevet :) /mvh
1. Nej, men ok. 2. Er stadig ikke helt med! Der oprettes et array() med de data som der er taget fra obj-arrayet(delt ved *), jeg er derfor ikke med på hvorfor push er nødvendig?! 3. Som jeg læser det står der: når i er lig 0 og i er mindre end obj.length. Hvorfor skal i=0 med, er det ikke inkluderet i i<obj.length? Jeg troede at mindre end eller lig med skulle stå som i<=obj.length, ellers vil den vel altid kun nå til i-1?
Det er en meget stor hjælp at få en forklaring på det, tak for det.
Jeg tror, du bør købe en bog/hæfte om elementært JavaScript. Det tjener vist ikke noget formål, vi går videre her. Det vil kræve en større 'dansk stil' :) /mvh
Ehhhh .... hvorfor afviser du? Du har da fået fuldt korrekt svar på dit spørgsmål - og det må vel være nok. Du bad ikke i dit spørgsmål om et længere kursus i elementær scripting.
Da jeg ikke forstår svaret ved jeg ikke om det er det svar jeg søger. Jeg benytter ikke scripts som jeg ikke forstår helt ;o) Hvis du ikke mener det er acceptabelt, så giver jeg gerne pointene, det betyder ikke så meget.
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.