编辑:请先查看安迪的答案,因为他的答案排在第一位,这仅仅是他的扩展
我知道这是一个古老的问题,但是我认为值得包括Array.prototype.sort()
。
这是来自MDN的示例以及链接
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
幸运的是,它不仅适用于数字:
arr.sort([compareFunction])
compareFunction
指定定义排序顺序的函数。如果省略,则根据每个字符的Unicode代码点值,以及每个元素的字符串转换,对数组进行排序。
我注意到您正在按名字订购它们:
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;
});
请注意,如果你想按姓氏命令他们,你将不得不要么有两个关键first_name
:last_name
或者做一些正则表达式魔术,这是我不能做XD
希望有帮助:)