Just nu i M3-nätverket
Gå till innehåll

Array-problem!


hasseo

Rekommendera Poster

Om jag vill ta bort ett värde ur en array och flytta efter alla de andra en position, hur göra?

 

Ex

 

var frukt = new Array("Äpple","Banan","Päron");

 

Jag vill ta bort äpple och flytta efter så att Banan hamnar i första possitionen och Päron i andra.

 

Tckar på forehand/H

Länk till kommentar
Dela på andra webbplatser

Normalt gör man detta antingen från början eller från slutet.

 

Du använder pop och push för att förändra från slutet. Pop tar bort det sista värdet och push lägger till ett i slutet.

 

Shift och unshift används från början. Shift tar bort det första värdet och unshift lägger till ett i början.

 

I ditt fall skulle du alltså skriva:

frukt.shift();

 

Vill du plocka bort värden mitt i arrayen använder du istället metoden splice:

 

frukt.splice(1, 1);

 

Tar bort "Banan". Första ettan anger att den ska börja agera på värde nummer 1 (dvs andra värdet, första värdet har nummer 0). Andra ettan anger att den ska ta bort ett värde. Hade du haft:

 

var frukt = new Array("Äpple", "Banan", "Päron", "Apelsin", "Vindruva", "Citron", "Persika");

 

så hade:

 

frukt.splice(2, 3);

 

Börjat på "Päron" (nummer 2) och tagit bort 3 värden och du hade lämnats kvar med:

"Äpple", "Banan", "Citron", "Persika"

 

(Päron, apelsin och vindruva togs bort.)

 

 

Länk till kommentar
Dela på andra webbplatser

Tackar och bockar för det svaret! Vet inte om jag fattade dig rätt men nu tar det bort värdet i den angivna possitionen men den tar inte bort själva possitionen. Om jag efter att ha tagit bort ett värde vill lägga till ett till så får jag en possition i mellan som innehåller värdet "undefine". Om du eller någon annan vill kolla så finns filerna här:

 

http://www.tenntrad.com/vagntest/

 

Länk till kommentar
Dela på andra webbplatser

För att lägga till i slutet av arrayen använder du Push:

 

antal.push(nr);

vara.push(obj);

 

Det andra talet till splice-metoden, för att ta bort värden, anger hur många värden i arrayen du ska ta bort. I ditt fall borde det stå en etta där, alltså:

 

antal.splice(obj, 1);

vara.splice(obj, 1);

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...