Christian Kruse: localeCompare und negative Zahlen

Beitrag lesen

problematische Seite

Hallo JürgenB,

Leider wird die Spalte mit den negativen Zahlen falsch sortiert. Verwende ich die Funktion falsch, oder kennt localeCompare keine negativen Zahlen?

Kann ich nicht nachvollziehen. Bei mir geht das:

["1", "3", "-1", "0"].sort((a, b) => a.localeCompare(b, "de", {numeric: true}))
// ergibt: (4) ["-1", "0", "1", "3"]

Edit: ah, verstehe - du meinst innerhalb der negativen Zahlen. Ja, das ist bei mir auch falsch. Nein, es sieht nicht so aus als machst du etwas falsch. Ich würde das als Bug oder zumindest als irreführende Parametrisierung einstufen: {numeric: true} legt nahe, dass ein Vergleich von Nummer stattfindet und nicht mehr von Strings. Ist aber offensichtlich nicht der Fall. Mal sehen, was der Standard dazu sagt…

LG,
CK