Ich habe versucht, ein sehr seltsames Problem herauszufinden, auf das ich mit Typoskript gestoßen bin. Es wurde ein boolescher Inline-Ausdruck als der Typ des ersten Werts anstelle des vollständigen Ausdrucks behandelt.
Wenn Sie also etwas Einfaches wie das Folgende ausprobieren:
var numericArray:Array<number> = [2,3,4,1,5,8,11];
var sorrtedArray:Array<number> = numericArray.sort((n1,n2)=> n1 > n2);
Bei Ihrer Sortiermethode wird eine Fehlermeldung angezeigt, dass die Parameter nicht mit der Signatur des Aufrufziels übereinstimmen, da Ihr Ergebnis numerisch und nicht boolesch ist. Ich vermisse wohl etwas, weil ich mir ziemlich sicher bin, dass n1> n2 eine boolesche Aussage ist.
quelle
Zahlen
Beim Sortieren von Zahlen können Sie den kompakten Vergleich verwenden:
dh
-
eher als<
.Andere Arten
Wenn Sie etwas anderes vergleichen, müssen Sie den Vergleich in eine Zahl umwandeln.
Objekte
Bei Objekten können Sie nach einer Eigenschaft sortieren. Beachten Sie dabei die oben genannten Informationen zur Verwendung von Kurznummerntypen. Das folgende Beispiel funktioniert unabhängig vom Typ.
quelle
(n1,n2)=>n1-n2
Ausdruck ausgeführt wird oder funktioniert .. ??n1
undn2
innerhalb der zurückgegebenen Funktionn1-n2
entweder eine positive Zahl, eine Null oder eine negative Zahl ist. Dies teilt dem Sortiervorgang mit, ob die Elemente umgeschaltet werden müssen oder nicht, wodurch das Sortieren aktiviert wird.Tolle Antwort Sohnee. Wenn Sie ein Array von Objekten haben und nach Schlüssel sortieren möchten, ist dies fast dasselbe. Dies ist ein Beispiel für eines, das sowohl nach Datum (Nummer) als auch nach Titel (Zeichenfolge) sortiert werden kann:
Sie können die Werte auch als Variablen n1 [Feld] und n2 [Feld] festlegen, wenn sie dynamischer sind. Behalten Sie einfach den Unterschied zwischen Zeichenfolgen und Zahlen bei.
quelle
Nach einem Feld sortieren:
quelle
Mixed Array sortieren (Alphabete und Zahlen)
quelle
Der einfachste Weg scheint darin zu bestehen, die zweite Zahl von der ersten zu subtrahieren:
https://alligator.io/js/array-sort-numbers/
quelle
quelle
Ich habe dieses heute geschrieben
_.sortBy
, als ich versuchte, es in TypeScript neu zu erstellen , und dachte, ich würde es jedem überlassen, der es braucht.Verwendung:
Es erwartet ein Array vom generischen Typ T, daher die Umwandlung für
<T extends {}>
, sowie die Eingabe des Parameter- und Funktionsrückgabetyps mitT[]
**
getByKey
fn hier gefundenquelle