Avatar billede fixxxer Nybegynder
02. marts 2005 - 18:28 Der er 4 kommentarer og
1 løsning

array løkke og slet samtidigt

Jeg har et array, som jeg vil løbe i gennem og kontrollere om nogle værdier i arrayet stemmer overens med andre værdier.

Undervejs i løkken vil jeg slette de felter i array'et der stemmer overens med min kontrol.

for (i=0;i<mitarray.length;i++)
{
  if (mitarray[i] == value)
    //slet feltet i fra array'et.
  }
}

Jeg har kikket lidt på splice og slice metoderne, men hvis man sletter medens man løkker, så går der kludder i det.. kan jeg i hvert fald se.
Hvis jeg blot null'er mitarray[i] så fjerner jeg værdien, men ikek selve feltet.

Jeg kan huske at i Delphi skulle man lave en omvendt løkke, som starter i bunden af et array og bevæger sig opad, for at kunne slette undervejs, uden at "ødelægge" løkken.
Noget ala:

for I:=length(array) downto 0 do


Nogen der kan hjælpe mig med dette problem?
Avatar billede olebole Juniormester
02. marts 2005 - 19:13 #1
<ole>

Hvis du vil fjerne 'feltet' helt, er du nødt til at oprette et nyt array. JS indeholder ingen metoder til at slette et array-element helt med ... så skal du i hvert fald ud i at splitte array'et og samle det igen.

En baglæns for-løkke kan du skrive sådan:
    for (i=ARRAY.length-1; i>=0; i--) { //Gør noget her }

/mvh
</bole>
Avatar billede fixxxer Nybegynder
02. marts 2005 - 19:47 #2
Jeg ved om det bare er mig, men det her ser ud til at fungere glimrende:

var mitarray = new Array();
mitarray[mitarray.length] = 'første punkt';
mitarray[mitarray.length] = 'andet punkt';
mitarray[mitarray.length] = 'tredje punkt';
mitarray[mitarray.length] = 'midt punkt';
mitarray[mitarray.length] = 'sidste punkt';

for (i=mitarray.length-1;i>=0;i--)
{
    if (mitarray[i] == 'tredje punkt')
    {
        mitarray.splice(i, 1);
        document.write('Element fra array\'et er fjernet!<br>');
    }
    else
    {
        document.write(mitarray[i] + '<br>');
    }
}
Avatar billede fixxxer Nybegynder
02. marts 2005 - 20:35 #3
Det virker umiddelbart helt efter hensigten.

Nu har jeg så et problem med stylesheet sat margin, som jeg skal finde i JavaScript.

Opretter et nyt spørgsmål, håber du har lyst til at kikke på det. Lig gerne et svar her, så det kan blive lukket.
Avatar billede fixxxer Nybegynder
02. marts 2005 - 20:39 #4
Hvis du er nysgerig, må du gerne kikke her:

http://www.eksperten.dk/spm/596312
Avatar billede fixxxer Nybegynder
11. marts 2005 - 10:11 #5
lukker
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