Como ordenar un array de objetos por "value" en javascript? Ordenar por number, string o date.
Supongamos que tenemos un arreglo de objetos en js que inicializamos de la siguiente forma:
const users = [
{
name: "ana",
age: 21,
birthDay: new Date(1979, 11, 12)
},
{
name: "pepe",
age: 34,
birthDay: new Date(2000, 8, 4)
},
{
name: "juan",
age: 19,
birthDay: new Date(1986, 6, 29)
},
];
Podemos ordenarlo de estas maneras:
- Descendente por un campo numérico, en este caso por edad:
users.sort(function (a, b){
return (b.age - a.age)
});
- Ascendente por un campo numérico, en este caso por edad:
users.sort(function (a, b){
return (a.age - b.age)
});
- Descendente alfabéticamente por un campo que sea de tipo "string", en este caso por nombre:
users.sort(function (a, b){
return ( b.name.toLowerCase().localeCompare(a.name.toLowerCase()))
});
- Ascendente alfabéticamente por un campo que sea de tipo "string", en este caso por nombre:
users.sort(function (a, b){
return ( a.name.toLowerCase().localeCompare(b.name.toLowerCase()))
});
- Descendente por un campo que sea de tipo "date", en este caso por la fecha de cumpleaños:
users.sort(function(a,b){
return ( b.birthDay.getTime() - a.birthDay.getTime())
});
- Ascendente por un campo que sea de tipo "date", en este caso por la fecha de cumpleaños:
users.sort(function(a,b){
return ( a.birthDay.getTime() - b.birthDay.getTime())
});
Comentarios
Publicar un comentario