Avatar billede lightbrain Nybegynder
17. juni 2002 - 18:32 Der er 1 kommentar og
1 løsning

Array - 2 værdier

Hej

Jeg har et script, som opretter et array. Objekterne i dette array er blevet sorteret efter værdien af gruppe[1][i].emnenr. Det funker fint.

Men nu jeg gerne have udvidet scriptet, således at det - udeover at indeholde værdien af gruppe[1][i].emnenr - også kommer til at indeholde værdien af gruppe[1][i].artikelnr. Hvordan kan det lade sig gøre?


function ArrangerEfterVaerdi ( ) {

    var  nytArray = gruppe[1].sort( fnavnObj );  // sorter over i nye array.
    for ( i=1; i<nytArray.length; i++ ) {  // se hvad der blev sorteret til
        alert("Her kommer det sortede array: " + nytArray[i-1].emnenr );
    }
}

function fnavnObj ( a, b ) { // a og b er tabelceller der skal sammenlignes
    if ( a.emnenr == b.emnenr) return 0;  // 0 for ens elementer
    if ( a.emnenr > b.emnenr ) return 1;  // 1 for a > b
    return -1;                            // -1 for b > a
}; //end fnavnObj
Avatar billede Slettet bruger
17. juni 2002 - 21:48 #1
Det gør det vel også nu!
Er det ikke dette, du mener (?):

<html>
<head>
<script>
function Obj(enr, anr) {
this.emnenr = enr;
this.artikelnr = anr;
}

gruppe = new Array();
gruppe[0] = new Array();
gruppe[0][0] = new Obj(3, 5);
gruppe[0][1] = new Obj(1, 8);
gruppe[0][2] = new Obj(10, 2);
gruppe[1] = new Array();
gruppe[1][0] = new Obj(3, 5);
gruppe[1][1] = new Obj(1, 8);
gruppe[1][2] = new Obj(10, 2);
gruppe[1][3] = new Obj(19, 3);
gruppe[1][4] = new Obj(2, 67);
gruppe[1][5] = new Obj(33, 21);

function ArrangerEfterVaerdi ( ) {

    var  nytArray = gruppe[1].sort( fnavnObj );  // sorter over i nye array.
    for ( i=0; i<nytArray.length; i++ ) {  // se hvad der blev sorteret til
        alert("Her kommer det sortede array:\n\nEmnenummer: " + nytArray[i].emnenr + "\nArtikelnummer: " + nytArray[i].artikelnr );
    }
}

function fnavnObj ( a, b ) { // a og b er tabelceller der skal sammenlignes
    if ( a.emnenr == b.emnenr) return 0;  // 0 for ens elementer
    if ( a.emnenr > b.emnenr ) return 1;  // 1 for a > b
    return -1;                            // -1 for b > a
}; //end fnavnObj
</script>
</head>
<body>
<a href="#" onClick="ArrangerEfterVaerdi(); return false;">Arrangér!</a>
</body>
</html>
Avatar billede lightbrain Nybegynder
18. juni 2002 - 17:35 #2
Ja, det gør jeg faktisk, for det beviser alert-sætningen jo, idet den udskriver omtalte værdi. Tak for oplysningen.
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