Labtec: 2 dimensionaler Array + sort!

Hi!
Ich möchte einen Array der Größe nach sortieren. Gleichzeitig soll dem jeweiligen Wert des Arrays eine Url zugeordnet werden, damit ich die dazugehörige Seite für den kleinsten Wert in einem neuen Fenster öffnen kann. Ich hab das folgendermaßen zu lösen versucht:

function Numsort(a,b)
{ return a-b; }

function berechnen ()
{
var wert = new Array ();
wert[0] = new Array (10, "test.htm");
wert[1] = new Array (2, "test2.htm");
wert[2] = new Array (50, "test3.htm");

wert.sort(Numsort);
fensterneu = window.open(wert[0][1], "fenster", "width=300,height=500,left=80,top=40");
}

Leider gibt mir der IE die Fehlermeldung "Zahl erwartet" Mozilla hingegen führt offenbar die Sort Funktion gar nicht aus und öffnet test.htm! Meine Frage nun, was mach ich falsch bzw. wie könnte ich das Problem besser lösen??
Danke im voraus!
Lg Labtec

  1. gruss Labtec,

    Hi!
    Ich möchte einen Array der Größe nach sortieren. Gleichzeitig soll
    dem jeweiligen Wert des Arrays eine Url zugeordnet werden, damit
    ich die dazugehörige Seite für den kleinsten Wert in einem neuen
    Fenster öffnen kann.
    ...

    wenn man der Array-methode "sort" eine selbstdefinierte
       sortier-funktion mit auf den weg gibt, sollte diese den
       aufbau des zu sortierenden arrays beruecksichtigen;

    "sort" bedient sich waehrend eines einzelnen sortierschrittes
       der vorgegebenen sortierfunktion, indem es diese mit genau zwei
       eintraegen des zu sortierenden arrays aufruft und dabei auf einen
       rueckgabewert groesser oder kleiner oder gleich 0 wartet, um auf
       der basis dieses ergebnisses die beiden eintraege gewichten zu
       koennen;

    da Du nun arrays innerhalb eines arrays sortierst, und die
       sortierung abhaengig vom ersten eintrag aller zu sortierenden
       arrays ist, und dieser erste wert numerisch ist, sieht Deine
       sortierfunktion folgendermassen aus:

    function urlSort(a,b) { // oder jeder x-beliebige andere name;
         return (a[0] - b[0]);
       }

    und wird auf Dein array "wert" angewandt so aufgerufen:

    wert.sort(urlSort);

    viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net

    --
    sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
    1. hallo again Labtec,

      das ganze liesse sich auch noch mal
         so richtig schoen kuerzen und saehe
         dann so aus:

      function berechnen() {
           var wert = [
             [10,"test.htm"],
             [2,"test2.htm"],
             [50,"test3.htm"]
           ];
           wert.sort(function(a,b){return(a[0]-b[0]);});

      fensterneu = window.open(wert[0][1], "fenster", "width=300,height=500,left=80,top=40");
         }

      tschoe - peterS. - pseliger@gmx.net

      --
      sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)