Michael R: Array sortieren

Hallo,

ein JavaScript hat u.a. folgende Elemente:

MyArray = new Array();
MyArray[0] = new Array();
MyArray[0][0] = 'eins';
MyArray[0][1] = '1';
MyArray[1] = new Array();
MyArray[1][0] = 'drei';
MyArray[1][1] = '3';
MyArray[1] = new Array();
MyArray[2][0] = 'zwei';
MyArray[2][1] = '2';

Ich würde jetzt ganz gerne das obige Array sortieren - ja ich weiß da gibt es sort() & Co. aber wie geht's unter der folgenden Bedingung:

Sortierkriterium soll sein: MyArray[?][0] = '...'

Sortierreihenfolge: alphabetisch

Kurzum: also das Array alphabetisch nach den Worten sortieren.

Hat jemand da einen Tipp ?

Danke
Michael

  1. Hi!

    Wenn die Daten aus einer DB kommen, würd ich ORDER BY verwenden.
    Wenn nicht, so gibt es 2 Möglichkeiten:

    1. Es gibt in JavaScript bereits eine Mehtode die das macht.
    Dazu würd ich kurz mal SELF-HTML-Kontaktieren

    2. Du must dir Deinen eigenen Sortieralgorithmus schreiben:
    Suche dazu im Internet einfach nach sorting oder noch besser
    nach: Quicksort (Quick-Sort) oder zB Bubble-Sort.

    Über das Sortieren haben sich schon ganz intelligente Leute
    in den Urzeiten der EDV gedanken gemacht. (1950+ )

    Liebe Grüße
    fredy

    Hallo,

    ein JavaScript hat u.a. folgende Elemente:

    MyArray = new Array();
    MyArray[0] = new Array();
    MyArray[0][0] = 'eins';
    MyArray[0][1] = '1';
    MyArray[1] = new Array();
    MyArray[1][0] = 'drei';
    MyArray[1][1] = '3';
    MyArray[1] = new Array();
    MyArray[2][0] = 'zwei';
    MyArray[2][1] = '2';

    Ich würde jetzt ganz gerne das obige Array sortieren - ja ich weiß da gibt es sort() & Co. aber wie geht's unter der folgenden Bedingung:

    Sortierkriterium soll sein: MyArray[?][0] = '...'

    Sortierreihenfolge: alphabetisch

    Kurzum: also das Array alphabetisch nach den Worten sortieren.

    Hat jemand da einen Tipp ?

    Danke
    Michael

    1. Hi fredy,

      danke für die Tipps!

      Michael

  2. Moin moin!

    Ich würde jetzt ganz gerne das obige Array sortieren - ja ich weiß da gibt es sort() & Co. aber wie geht's unter der folgenden Bedingung:
    Sortierkriterium soll sein: MyArray[?][0] = '...'
    Sortierreihenfolge: alphabetisch
    Kurzum: also das Array alphabetisch nach den Worten sortieren.

    Du musst der sort()-Methode eine eigene Vergleichsfunktion uebergeben. Siehe dazu http://docserv.calocybe.dyndns.org/specs/NetscapeCommunications/JavaScript13ClientReference/array.htm#1196882.

    Innerhalb der Vergleichsfunktion, die die beiden Parameter a und b bekommt, vergleichst Du jeweils a[0] und b[0] mit den normalen Vergleichsoperatoren <, > und == und gibst entsprechend -1, +1 oder 0 zurueck. Die Vergleichsoperatoren funktionieren in JS naemlich zum Glueck auch mit Strings (http://docserv.calocybe.dyndns.org/specs/NetscapeCommunications/JavaScript13ClientReference/ops.htm#1060974).
    Die beiden Parameter a und b sind dabei jeweils Elemente des Hauptarrays. Es sind also ihrerseits die Arrays, die 'eins' und 1 enthalten oder 'drei' und 3 usw.

    HTH && So long

    --
    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
        -- Rich Cook