Próbuję posortować tablicę według wartości „nazwa” (przy użyciu Lodash). Użyłem dokumentów Lodash, aby utworzyć poniższe rozwiązanie, jednak .orderBy nie wydaje się mieć żadnego wpływu. Czy ktoś może rzucić trochę światła na prawidłowy sposób sortowania tablicy?
Tablica znaków
[
{
"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"
}
]
Kod funkcji
var chars = this.state.characters;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
'name', 'asc'
orderBy
nie zmienia tablicy wejściowej" ... "orderBy
zmienia tablicę w miejscu." Prawdopodobnie zamierzone sformułowanie brzmi „nie na miejscu” lub „nie na miejscu”. Zobacz: en.wikipedia.org/wiki/In-place_algorithm['asc']
nie porządkuje rosnąco, aby to osiągnąć, należałoby dodać areverse()
poorderBy
(przynajmniej w wersji 4.17.15)Możesz użyć lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Twój kod może wyglądać następująco:
źródło
_.sortBy(myArray, 'name')
orderBy
typem sortowania nie można przekazać, sortowaniesortBy
odbywa się zawsze w kolejności rosnącej.