arrays - tutorial - lodash remove from array
use Lodash para ordenar la matriz de objetos por valor (2)
Este método
orderBy
no cambia la matriz de entrada, debe asignar el resultado a su matriz:
var chars = this.state.characters;
chars = _.orderBy(chars, [''name''],[''asc'']); // Use Lodash to sort array by ''name''
this.setState({characters: chars})
En otras palabras,
orderBy
cambia la matriz en su lugar.
Estoy tratando de ordenar una matriz por valor de ''nombre'' (usando Lodash). Utilicé los documentos de Lodash para crear la solución a continuación, sin embargo .orderBy no parece tener ningún efecto en absoluto. ¿Alguien puede arrojar algo de luz sobre la forma correcta de ordenar la matriz?
Matriz de caracteres
[
{
"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"
}
]
Código de función
var chars = this.state.characters;
chars = _.orderBy(chars, ''name'', ''asc''); // Use Lodash to sort array by ''name''
this.setState({characters: chars})
Puede usar lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Tu código podría ser como:
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)