Just nu i M3-nätverket
Jump to content

Array-problem!


hasseo

Recommended Posts

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

Link to comment
Share on other sites

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.)

 

 

Link to comment
Share on other sites

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/

 

Link to comment
Share on other sites

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);

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...