I am trying to sort an array by ‘name’ value (using Lodash). I used the Lodash docs to create the solution below however .orderBy doesn’t seem to be having any affect at all. Can anyone shed some light on the correct way to sort array?
Chars 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" } ]
Function Code
var chars = this.state.characters; _.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name' this.setState({characters: chars})
Advertisement
Answer
This method orderBy
does not change the input array,
you have to assign the result to your array :
var chars = this.state.characters; chars = _.orderBy(chars, ['name'],['asc']); // Use Lodash to sort array by 'name' this.setState({characters: chars})