J'essaye de trier un tableau par la valeur 'name' (en utilisant Lodash). J'ai utilisé les documents Lodash pour créer la solution ci-dessous, cependant .orderBy ne semble pas avoir d'incidence du tout. Quelqu'un peut-il nous éclairer sur la bonne façon de trier un 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;
chars = _.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
Cette méthode orderBy
ne modifie pas le tableau en entrée, vous devez affecter le résultat à votre tableau:
var chars = this.state.characters;
chars = _.orderBy(chars, ['name'],['asc']); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
Vous pouvez utiliser lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Votre code pourrait être comme:
const myArray = [
{
"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"
}
]
const myOrderedArray = _.sortBy(myArray, o => o.name)