Erklæres med Ar = new Array(); | // | uden at angive størrelse, den ændres opad når nødvendigt |
eller med Ar = new Array(17) | // |
opret array med 17 elementer (der dog alle er "undefined") |
eller med Ar = new Array(15, -22, "Olsen", 2*8+1, 8+1) | // |
Lav en array med 5 elementer som anført |
:
Om arrays med en record-lignende struktur
|
var Ar = new Array(15, -22, "Olsen", 2*8+1, 8+1); | |
Ar.toString( ) = |
var Ar2 = new Array('dig', 'og', 'mig') |
Ar2.toString( ) = |
Ar.concat(Ar2).toString( ) = |
Ar.toString( ) = ( altså uændret ) |
Ar.concat(Ar2).toString( ) = |
Ar.toString( ) = ( altså uændret ) |
Ar.toString( ) = ( altså uændret ) |
|
Ar.length = Ar ejer variabel length = antal elementer |
concat(string) | Ar.concat(Ar2) | = |
Bagefter er Ar uændret |
join("char") | Ar.join('A') | = |
Sætter elementerne sammen til en streng med A til adskillelse.
Giver mening med mellemrumstegn: Ar.join(" ") =
Bagefter er Ar uændret
|
join("") | Ar.join() | = |
Mangler 'char' indsættes i stedet kommaer,
ligesom toString() :   Ar.toString() = |
push(variabel) | Ar.push(Ar2) | = | og bagefter er
|
| Med Internet Explorer 6.0 står at Ar.toString() =
og det er jo forkert. Det 6.te element ( Ar[ 5 ] ) er en array, den fjerner jeg igen: |
pop( ) | Ar.pop( ) | = |
Bagefter er Ar ÆNDRET |
NB: Kun det bagerste element kan pop'es , pop( ) tager ingen parametre
|
|
reverse( ) | Ar.reverse( ) | = |
Bagefter er Ar ÆNDRET |
shift( ) | Ar.shift( ) | = |
Bagefter er Ar ÆNDRET |
slice(i) | Ar.slice(3) | = |
Bagefter er Ar uændret |
slice(i,j) | Ar.slice(2,3) | = | fra index=2 til elementet før index=3
Bagefter er Ar uændret |
slice( i, j ): |
Ar.slice(1,0) =
Ar.slice(1,1) =
Ar.slice(1,2) =
Ar.slice(1,3) =
Ar.slice(1,4) =
Ar.slice(1,5) =
Det er elementerne fra index i til index j-1
|
|
splice(index,antal [,værdi..] ) | Ar.splice(1,4,'Knudsen', 'Ida', 6, 7, 8, 9) | = |
Erstat elementer: 1.ste parameter (1) = Indes for 1.ste element der skal erstattes,
2.den paramerer (4) = antal elementer der skal erstattes, Følgende parametre (valgfrie) er nye værdier
for de elementer der skal erstattes. I eksemplet her erstatter 6, 7, 8 og 9 ikke noget men tilføjes i forlængelse
af Ar, så nu er Ar.length =
|
Ar.splice(3,2,'Olga') | = |
Nu er index 3 = '6' erstattet med 'Olga', index 4 = '7' er fjernet, og index 5 = '8' er rykket ned på index 4's plads ,
så nu er Ar[4] =
|
Ar.splice(2,1) | = |
Fjerner 1 element fra index nr 2 |
| Jeg omdefinerer Ar = new Array(
) |
sort( ) | Ar.sort( ) | = |
Bagefter er Ar ÆNDRET
Sorteringen er her sket efter Ansi-nummret som er tegnenes talværdi i tabellen
|
sort( strengsammenlign ) |
strengsammenlign( e1, e2 ) er en funktion til sammenligning af to elementer i arrayen,, her kaldet e1 og e2.
Den skal returnere et negativt tal, hvis e1 kommer før e2, positivt hvis e1 kommer efter e2, og nul hvis de er ens.
Denne funktion må man selv programmere, det har jeg gjort, se bare :
|
Ar.sort(strengsammenlign) | = |
bagefter er Ar ÆNDRET |
Internet Explorer er svag, når det gælder om at sortere en array, Netscape og Firefox virker meget bedre. Nedenfor har jeg et indtastnings-testfelt
hvor du kan forsøge at indtaste en array, de enkelte elementer skal adskilles med komma. Hvis du ikke har for mange elementer virker
Internet Explorer, men hvis du indtaster (Blok ind, tast Ctrl-C, klik i feltet, tast Ctrl-V) :
Ærøskøbing,Aalborg, København, @mager, aabo, åbo, aaabe, Åabe, ørestad, Ørestad, Ougadugu, ægir, aabo, zzzz, zzz
så får du med Internet Explorer version 8 den ulidelige, sædvanlige hovskisnovski-meddelelse 'der opstod en fejl på siden'.
Jeg kan ikke se anden forklaring end at I.Explorer ikke kan finde ud af at bruge mere end en lille del af hukommelsen og derfor
let løber tør.
Med Netscape og Firefox virker det upåklageligt.
|