jscript: Daten sortieren
bearbeitet von
Hallo Jens,
ich habe deine Inline-Codeformatierung (die Du vermutlich mit dem </>-Button erzeugt hast) mal in Blockformatierung geändert. Die kriegt man auch über den </> Button, wenn man mehrere Zeilen markiert.
Und dabei hab ich gelernt: Man markiere **gar nichts** und klicke auf </>, dann kommt ein Popup-Dialog für Codeblock-Eingabe, sogar mit Sprachauswahl.
Zu deiner Frage:
> Ich komme einfach nicht drauf, was das Problem ist.
Und JavaScript kommt einfach nicht drauf, warum es in einem String nach Code schauen soll. Für die Engine sind das einfach nur Konstanten. Und da es String-Konstanten sind, ergibt der Versuch des Subtrahierens immer NaN (spezielle JavaScript-Konstante für [Not A Number](https://wiki.selfhtml.org/wiki/JavaScript/Objekte/Number/NaN)).
Wenn Du den Eigenschaftsnamen dynamisch haben willst, nach dem sortiert wird, speichere den Eigenschaftsnamen in einer Variablen und verwende die Indexschreibweise, um auf die Eigenschaft zuzugreifen:
~~~js
let sortBy = "Si_max";
leg.sort((a, b) => a[sortBy] - b[sortBy]);
~~~
Für Eigenschaften, die Number- oder Date-Werte enthalten, ist das so okay, aber wenn Du String-Spalten hast, geht das mit dem Minus nicht, damm musst Du einen anderen Sort-Callback verwenden. Empfehlenswert ist dafür die compare-Methode, die ein [Intl.Collator](https://wiki.selfhtml.org/wiki/JavaScript/Objekte/Intl/Collator) bereitstellt. Im Wiki ist ein Beispiel dafür.
_Rolf_
--
sumpsi - posui - obstruxi
jscript: Daten sortieren
bearbeitet von
Hallo Jens,
ich habe deine Inline-Codeformatierung (die Du vermutlich mit dem </>-Button erzeugt hast) mal in Blockformatierung geändert. Die kriegt man auch über den </> Button, wenn man mehrere Zeilen markiert.
Und dabei hab ich gelernt: Man markiere **gar nichts** und klicke auf </>, dann kommt ein Popup-Dialog für Codeblock-Eingabe, sogar mit Sprachauswahl.
Zu deiner Frage:
> Ich komme einfach nicht drauf, was das Problem ist.
Und JavaScript kommt einfach nicht drauf, warum es in einem String nach Code schauen soll. Für die Engine sind das einfach nur Konstanten. Und uda es String-Konstanten sind, ergibt der Versuch des Subtrahierens immer NaN (spezielle JavaScript-Konstante für [Not A Number](https://wiki.selfhtml.org/wiki/JavaScript/Objekte/Number/NaN)).
Wenn Du den Eigenschaftsnamen dynamisch haben willst, nach dem sortiert wird, speichere den Eigenschaftsnamen in einer Variablen und verwende die Indexschreibweise, um auf die Eigenschaft zuzugreifen:
~~~js
let sortBy = "Si_max";
leg.sort((a, b) => a[sortBy] - b[sortBy]);
~~~
Für Eigenschaften, die Number- oder Date-Werte enthalten, ist das so okay, aber wenn Du String-Spalten hast, geht das mit dem Minus nicht, damm musst Du einen anderen Sort-Callback verwenden. Empfehlenswert ist dafür die compare-Methode, die ein [Intl.Collator](https://wiki.selfhtml.org/wiki/JavaScript/Objekte/Intl/Collator) bereitstellt. Im Wiki ist ein Beispiel dafür.
_Rolf_
--
sumpsi - posui - obstruxi