Ich versuche, ein Array nach dem Wert 'name' zu sortieren (mit Lodash). Ich habe die folgenden Lodash-Dokumente verwendet, um die unten stehende Lösung zu erstellen. OrderBy scheint jedoch keinerlei Auswirkungen zu haben. Kann jemand etwas Licht in die richtige Art und Weise bringen, Arrays zu sortieren?
Zeichen-Array
[
{
"id":25,
"name":"Anakin Skywalker",
"createdAt":"2017-04-12T12:48:55.000Z",
"updatedAt":"2017-04-12T12:48:55.000Z"
},
{
"id":1,
"name":"Luke Skywalker",
"createdAt":"2017-04-12T11:25:03.000Z",
"updatedAt":"2017-04-12T11:25:03.000Z"
}
]
Funktionscode
var chars = this.state.characters;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
'name', 'asc'
orderBy
Ändert das Eingabearray nicht" ... "orderBy
Ändert das Array an Ort und Stelle." Der beabsichtigte Wortlaut ist wahrscheinlich "nicht an Ort und Stelle" oder "nicht an Ort und Stelle". Siehe: en.wikipedia.org/wiki/In-place_algorithm['asc']
ordnet nicht aufsteigend an, um dies zu erreichen, wäre der Weg, einreverse()
nach demorderBy
(zumindest in Version 4.17.15)Sie können lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ) verwenden.
Ihr Code könnte wie folgt aussehen:
quelle
_.sortBy(myArray, 'name')
orderBy
können Sie den Sortiertyp nicht übergebensortBy
, er sortiert immer in aufsteigender Reihenfolge.