Verwirrter User 01: alphabetische Array funktioniert leider nicht wie gewollt ;'(...

Hi! Hätte da ein kleines Problem...ich möchte gerne eine Array erstellen und würde gerne die unten angegebene Formel verwenden...jene sollte
a) eine alphabetische Reihenfolge erzeugen(die country Array sollte einfach alphabetisch gereiht werden)
b) und dafür deutsche Umlaute + ß als a,o,u und s reihen und alles klein schreiben(mit der stringComparison Funktion)
c) document.write sollte dann den Wert ausgeben...
Das Problem bei der ganzen Sache ist dass die erste Umwandlung
a = a.toLowerCase();
b = b.toLowerCase();
zwar funktioniert...jedoch die restlichen Funktionen bei der Ausgabe nicht angewandt werden...
Ausgabe bei der Formel:
Andorra,deutschland,Dänemark,frankreich,Osttimur,Vereinigte Arabische Emirate,ägypten,Österreich
Ausgabe wenn der erste Wert v. stringComparison
a = a.replace(/Ä/g,"A");
b = b.replace(/Ä/g,"A");
ist dann:
Ägypten,Andorra,Dänemark,Osttimur,Vereinigte Arabische Emirate,deutschland,frankreich,Österreich

Ich sag schon mal danke für all eure Tipps...und hoffe natürlich dass mich jemand von meiner Verzweiflung erlösen kann ;)...

Lg

<script>
function stringComparison(a, b) {
a = a.toLowerCase();
a = a.replace(/ä/g,"a");
a = a.replace(/ö/g,"o");
a = a.replace(/ü/g,"u");
a = a.replace(/ß/g,"s");

b = b.toLowerCase();  
b = b.replace(/ä/g,"a");  
b = b.replace(/ö/g,"o");  
b = b.replace(/ü/g,"u");  
b = b.replace(/ß/g,"s");  

return(a==b)?0:(a>b)?1:-1;  

}

var index = 0;
var country = new Array();
country[index++] = "Vereinigte Arabische Emirate";
country[index++] = "deutschland";
country[index++] = "frankreich";
country[index++] = "Ägypten";
country[index++] = "Österreich";
country[index++] = "Andorra";
country[index++] = "Osttimur";
country[index++] = "Dänemark";

document.write(country.sort(stringComparison)+ "<br>");

</script>

  1. Lieber Verwirrter User 01,

    1. Webdokumente (egal ob JS/HTML/CSS/PHP) sollten immer in UTF-8 kodiert sein. Man bekommt sonst mächtig Ärger mit Enkodierungsproblemen.
    2. "Ä" ist alphabetisch nicht wie "A" zu sortieren, sondern wie "Ae".

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,

      1. "Ä" ist alphabetisch nicht wie "A" zu sortieren, sondern wie "Ae".

      kommt drauf an. Was du meinst, ist die sogenannte Telefonbuch-Sortierung, die mich jedesmal wieder verwirrt, wenn ich mal darauf stoße. Die Lexikon-Sortierung, bei der "Ä" wie "A" sortiert wird, ist aber ebenso verbreitet und IMO wesentlich intuitiver.

      Ciao,
       Martin

      --
      Ein guter Lehrer muss seinen Schülern beibringen können,
      eine Frage so zu stellen, dass auch der Lehrer lernen muss,
      um die Frage beantworten zu können.
        (Hesiod, griech. Philosoph, um 700 v.Chr.)
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hallo Martin!

        1. "Ä" ist alphabetisch nicht wie "A" zu sortieren, sondern wie "Ae".

        kommt drauf an. Was du meinst, ist die sogenannte Telefonbuch-Sortierung, die mich jedesmal wieder verwirrt, wenn ich mal darauf stoße. Die Lexikon-Sortierung, bei der "Ä" wie "A" sortiert wird, ist aber ebenso verbreitet und IMO wesentlich intuitiver.

        Daran scheiden sich wohl die Geister ...! ;-)

        Ich finde ehrlich gesagt die andere Variante intuitiver, denn die Ersatzschreibweise, oder auch Umschreibung ist ja ae, oe und ue. Und wenn man daran "gewöhnt" ist, stellt sich eigentlich die Frage nach der Sortierung gar nicht.

        Die DIN 5007 erlaubt ja nach wie vor beide Varianten.

        Gruß Gunther

        1. @@Gunther:

          nuqneH

          Ich finde ehrlich gesagt die andere Variante intuitiver

          Ich finde beide Varianten sinnvoll – je nach Kontext.

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    2. Lieber Verwirrter User 01,

      1. Webdokumente (egal ob JS/HTML/CSS/PHP) sollten immer in UTF-8 kodiert sein. Man bekommt sonst mächtig Ärger mit Enkodierungsproblemen.
      2. "Ä" ist alphabetisch nicht wie "A" zu sortieren, sondern wie "Ae".

      Liebe Grüße,

      Felix Riesterer.

      Lieber Herr Felix Riesterer!

      Vielen Danke für deine Hilfe...bin leider sagen wir es mal so...nicht soo versiert mit Javascript wie du...ich hab zwar schon einige Dinge drauf aber ich habe erst in den letzten ca 6 Monaten mit dem programmieren angefangen und schön langsam entwirren sich meine Verwirrungen...wie auch immer ich danke dir vielmals für deine Hilfe...das Problem ist nun natürlich für mich gelöst!

      Liebe Grüße!

      der (nun nicht mehr)Verwirrter User 01

      1. Hallo!

        [..]das Problem ist nun natürlich für mich gelöst!

        Sicher? "Für dich" ok, aber wie Martin richtig bemerkte, hat die Lösung von Felix einen Haken.
        Ich würde die Sortierung auch nicht nach z.B. "Ae" vornehmen.

        Und ob UTF-8 wirklich immer die richtige Wahl ist, steht auch noch auf einem anderen Blatt. Allgemein kann man das in dem Fall wohl aber so stehen lassen - um dich nicht wieder zu verwirren ;)

        Grüße, Matze

    3. Lieber Verwirrter User 01,
      2. "Ä" ist alphabetisch nicht wie "A" zu sortieren, sondern wie "Ae".

      Nicht nach DIN 5007, Variante 1 (Wörterbuchsortierung), aber bei Namenslisten (DIN 5007, Variante 2, Telefonbuchsortierung).

      Jörg Reinholz

  2. Jaja...ich habe bis jetzt kein UTF und dergleichen benötigt...bis jetzt langte die Kodierungen für Zeichen zB.:\u0040 für @...wie professionell oder weniger professionell das ist sei mal dahingestellt...ich habe jetzt für die array a = a.replace(/ä/g,"axx"); genommen...da Umlaute eher selten in meiner Datenbank sind sollten nämlich jene auf jeden Fall nach a gaaanz zum Schluss gereiht werden...wie auch immer...die Funktion tut das was sie soll und obendrein bin ich noch ein Gramm klüger...was will man mehr ;)

    Lg an alle