Allt om javascript's arrayer
Det finns två sätt att skapa en array på. Antingen genom konstruktorn Array eller genom [].
enarray = new Array();
// är samma sak som
enarray = [];
enarray = new Array("röd", "blå", "gul");
// är samma sak som
enarray = ["röd", "blå", "gul"];
När väl en variabel har initierats som array kan du lägga till värden som du vill.
Om du vill lägga till ett värde på slutet av en array ser syntaxen ut så här:
enarray[enarray.length] = "Något värde";
För att stega igenom alla element i en array finns det två sätt. Dels det traditionella C-sättet.
for (i=0; i<enarray.length; i++){
// lite kod
alert( "Index: " + i + "\nVärde: " + enarray[i] )
}
Här stegas loopen genom värde för värde från 0 till (enarray.length-1) Värdet med högst index ligger normalt ett snäpp under värdet enarray.length
Men javascript har även ett sätt till:
for (i in enarray){
// lite kod
alert( "Index: " + i + "\nVärde: " + enarray[i] )
}
Denna metod stegar igenom alla index och loopen körs en gång per index.
Skillnaden mellan metoderna är att den första metoden bara kan hantera numeriska index, medan den andra kan hantera vilken typ som helst.
Här kommer man in på en stark fördel med javascript's arrayer. De kan ha strängindex. Man kan alltså skriva som följer:
enarray = [];
enarray ["chokladkaka"] = "Gott";
enarray ["blodpudding"] = "Äckligt";
enarray ["potatis"] = "Nyttigt";
for (i in enarray){
alert( "Index: " + i + "\nVärde: " + enarray[i] )
}
Skulle du klistra denna kod i ett skriptblock på en sida skulle den räkna de värden som satts precis innan. Då är chokladkaka, blodpudding och potatis tre olika index, och Gott, Äckligt och Nyttigt är tre värden.
Läs detta noggrannt och pröva att koda själv, så ska du se att det släpper. ;)
Så till din andra fråga, om att ta bort index. Ponera att du har följande kod:(Anm: Jag har ändrat i din kod, eftersom det är brukligt att det första elementet är 0)
minArray[0] = "test1";
minArray[1] = "test2";
minArray[2] = "test3";
Du vill ta bort ettan. Det gör du så här:
delete minArray[1];
Men att göra så har en egenhet. Delete lämnar nämligen kvar ett hål i Array'n; minArray[1] finns helt enkelt inte längre. Om man skulle använda metod 1 för att söka genom denna array, så skulle man troligen få ett fel i koden eftersom denna metod räknar från 0 till 2, och då även 1 som inte finns längre.
Metod 2 räknar däremot bara igenom de element som faktiskt finns och funkar utmärkt i detta exempel.
Piuh. :bire :birp