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;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})

'name', 'asc'orderByno cambia la matriz de entrada" ... "orderBycambia la matriz en su lugar". La redacción prevista es probablemente "fuera de lugar" o "fuera de lugar". Ver: en.wikipedia.org/wiki/In-place_algorithm['asc']no ordena ascendente, para lograr eso la forma sería agregar unreverse()después delorderBy(al menos en la versión 4.17.15)Puede usar lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Tu código podría ser como:
fuente
_.sortBy(myArray, 'name')orderBy, no se puede pasar el tipo de clasificaciónsortBy, siempre se clasifica en orden ascendente.