Я пытаюсь отсортировать массив по значению «имя» (используя Lodash). Я использовал документы Lodash для создания решения ниже, однако .orderBy, похоже, вообще не влияет. Может ли кто-нибудь пролить свет на правильный способ сортировки массива?
Массив символов
[
{
"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"
}
]
Код функции
var chars = this.state.characters;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
'name', 'asc'
orderBy
не изменяет входной массив" ... "orderBy
меняет массив на месте." Предполагаемая формулировка, вероятно, «не на месте» или «не на месте». См .: en.wikipedia.org/wiki/In-place_algorithm['asc']
не упорядочивает по возрастанию, чтобы добиться этого, можно было бы добавитьreverse()
послеorderBy
(по крайней мере, в версии 4.17.15)Вы можете использовать lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Ваш код может быть таким:
источник
_.sortBy(myArray, 'name')
orderBy
, вы не можете передать тип сортировкиsortBy
, он всегда сортируется по возрастанию.