J'essaye de trier un tableau par valeur de «nom» (en utilisant Lodash). J'ai utilisé les documents Lodash pour créer la solution ci-dessous, cependant .orderBy ne semble pas avoir d'effet du tout. Quelqu'un peut-il nous éclairer sur la manière correcte de trier le tableau?
Tableau de caractères
[
{
"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"
}
]
Code de fonction
var chars = this.state.characters;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
'name', 'asc'
orderBy
ne modifie pas le tableau d'entrée" ... "orderBy
modifie le tableau en place." Le libellé prévu est probablement «pas en place» ou «hors de place». Voir: en.wikipedia.org/wiki/In-place_algorithm['asc']
n'est pas d'ordre croissant, pour y parvenir, il faudrait ajouter unreverse()
après leorderBy
(au moins dans la version 4.17.15)Vous pouvez utiliser lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Votre code pourrait être comme:
la source
_.sortBy(myArray, 'name')
orderBy
, vous ne pouvez pas passer le type de trisortBy
, il trie toujours par ordre croissant.