use Lodash to sort array of object by value
You can use lodash sortBy (https://lodash.com/docs/4.17.4#sortBy).
Your code could be like:
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)
If you need to sort by date, you could use this solution:
orderBy(items, (a) => new Date(a.createdAt), ['asc']) // or 'desc'
If you are using moment
library, then:
orderBy(items, (a) => moment(a.createdAt), 'asc')
P.s. Note that the lodash
doesn't sort dates in string format, so you must convert it to Date object.
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})