EDIT: Por favor, verifique a resposta de Andy, pois sua resposta veio primeiro e esta é apenas uma extensão de sua
Sei que é uma pergunta antiga, mas acho que vale a pena incluí-la Array.prototype.sort()
.
Aqui está um exemplo do MDN junto com o link
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
Felizmente, não funciona apenas com números:
arr.sort([compareFunction])
compareFunction
Especifica uma função que define a ordem de classificação. Se omitido, a matriz é classificada de acordo com o valor do ponto de código Unicode de cada caractere, de acordo com a conversão de string de cada elemento.
Percebi que você os está ordenando pelo primeiro nome:
let playlist = [
{artist:"Herbie Hancock", title:"Thrust"},
{artist:"Lalo Schifrin", title:"Shifting Gears"},
{artist:"Faze-O", title:"Riding High"}
];
// sort by name
playlist.sort((a, b) => {
if(a.artist < b.artist) { return -1; }
if(a.artist > b.artist) { return 1; }
// else names must be equal
return 0;
});
note que se você quisesse ordená-los pelo sobrenome, você teria que ter uma chave para ambos first_name
& last_name
ou fazer alguma mágica regex, o que eu não posso fazer XD
Espero que ajude :)