Avatar billede lizardine Nybegynder
22. maj 2003 - 12:30 Der er 8 kommentarer og
1 løsning

Remove object from array collection

Hey

Hvordan fjerner jeg et objekt fra mit array ???

Jeg har følgende kode:

var oCollection = new Array();

function SetCollection(Id, Name)
{
    this.Id = Id;
    this.Name = Name;
}

function AddObjectCollection(Id, Name)
{
    oCollection = new SetCollection(Id, Name);
}

function RemoveObjectCollection(id)
{
    for (n in oCollection)
    {
          if (oCollection[n].Id == Id)
          {
              // Her skal jeg slette objektet i mit collection array - hvad gør jeg ???
              // Jeg har forsøgt mig med oCollection.remove n - men det virker ikke.
          }
    }
}
Avatar billede roenving Novice
22. maj 2003 - 12:50 #1
Hvis du kan leve med, at det kun er nn4+ og ie5.5+ siger min bog at der kommet en metode, som dur i stedet for at man er nødt til at lave en ny med de tilbageværende medlemmer:

newArray = array.splice(start,antal)

-- hvor start er index for det første element som skal slettes og antal, hvor mange der skal fjernes. newArray er de slettede elementer, så du kan jo teste for succes ved at gemme den slettede i en midlertidig variabel og sammenligne dem ...

hth
jes
Avatar billede lizardine Nybegynder
22. maj 2003 - 13:40 #2
Eller man benytte: delete oCollection[n] ;-)

Tak for hjælpen og vil du komme med en besvarelse?
Avatar billede roenving Novice
22. maj 2003 - 13:52 #3
Som jeg har forstået det -- og jeg har ikke selv haft brug for den slags -- er javascript fra start ikke så kraftfuld på nogle hjørner, som man ville kunne forvente, og der er en af dem ...

jeg tror det er resultatet af et kompromis mellem den dynamiske oprettelse/udvidelse af arrays og så nogle funktioner ude i hjørnerne, så

Nej du kan ikke finde en metode, som bare fjerner -- intet sted anerkendes direktivet delete .-|
Avatar billede lizardine Nybegynder
22. maj 2003 - 14:00 #4
Hvad mener du med at 'intet sted anerkendes direktivet delete ' ???

Og tak for din besvarelse :-)
Avatar billede roenving Novice
22. maj 2003 - 15:27 #5
Den slags direktiver findes slet ikke i javascript -- det nærmeste du kan komme er i nogle af de nyeste implementeringer, hvor der f.eks . findes en deleteRule-METODE på NN6+'s styleSheet-objekt, men altså en metode på et objekt ikke et selvstændigt direktiv, som kan sådan noget ...

Velbekomme -- og tak for points ;~}
Avatar billede olebole Juniormester
23. maj 2003 - 14:23 #6
<ole>

roenving >> Operatoren 'delete' er ECMA-compliant og kom med i JS tilbage i version 1.2.
Den delete'er et objekt, en property på et objekt eller et specificeret element i et array.

Dog fjerner den ikke elementet fra array'et - hvilket kan ses af følgende eksempel:
<script type="text/JavaScript">
    var bla = new Array(1,2,3);
    delete bla[1];
    alert(bla);
</script>

Derfor opfylder den altså ikke ønsket i spørgsmålet ... der er 'splice()' det eneste rigtige at bruge:
<script type="text/JavaScript">
    var bla = new Array(1,2,3);
    bla.splice(1,1);
    alert(bla);
</script>

/mvh
</bole>
Avatar billede roenving Novice
23. maj 2003 - 14:32 #7
Tak for oplysningen -- jeg er overhovedet ikke i tvivl om, at jeg stadig har meget at lære :-)

-- og så må jeg jo så sige undskyld til bla. lizardine for min (alt for) skråsikre afvisning af muligheden for at bruge delete .-|
Avatar billede olebole Juniormester
23. maj 2003 - 14:52 #8
Hehe ... hvergang man lukker døren med skiltet "Ahh ... endelig fik jeg lært det hele" bag sig, tændes lyset i lokalet og afslører to-tre nye døre - med hvert sit rum med endnu flere døre. Jeg kender det kun alt for godt selv  ;o)

Hvis du har lyst kan du kikke her:
  http://devedge.netscape.com/library/manuals/
hvor de seneste JS-referencer ligger. Så mangler vi bare, at MS snart kommer med en browser, der kan bruge JS1.5  ;o)
/mvh
Avatar billede roenving Novice
23. maj 2003 - 14:59 #9
>>Ja, jeg har den allerede liggende (referencen), men jeg skal lige være sikker på, at jeg har læst den 1000+ siders bog om emnet jeg har liggende på skrivebordet først ;O)

-- og javascript 1.5 i IE ?-|
-- ville det ikke være at foretrække, at M$ kom med W3C-compliant browser først *gg*
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