แก้ไข: โปรดตรวจสอบคำตอบของ Andyเนื่องจากคำตอบของเขามาก่อนและนี่เป็นเพียงส่วนเสริมของเขาเท่านั้น
ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันคิดว่ามันคุ้มค่าที่จะรวมArray.prototype.sort()
ไว้
นี่คือตัวอย่างจาก MDN พร้อมกับลิงค์
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
โชคดีที่มันไม่ได้ใช้กับตัวเลขเท่านั้น:
arr.sort([compareFunction])
compareFunction
ระบุฟังก์ชันที่กำหนดลำดับการจัดเรียง หากไม่ระบุอาร์เรย์จะถูกจัดเรียงตามค่าจุดรหัส Unicode ของอักขระแต่ละตัวตามการแปลงสตริงของแต่ละองค์ประกอบ
ฉันสังเกตเห็นว่าคุณสั่งซื้อโดยใช้ชื่อจริง:
let playlist = [
{artist:"Herbie Hancock", title:"Thrust"},
{artist:"Lalo Schifrin", title:"Shifting Gears"},
{artist:"Faze-O", title:"Riding High"}
];
playlist.sort((a, b) => {
if(a.artist < b.artist) { return -1; }
if(a.artist > b.artist) { return 1; }
return 0;
});
โปรดทราบว่าหากคุณต้องการสั่งซื้อด้วยนามสกุลคุณจะต้องมีคีย์สำหรับทั้งสองfirst_name
& last_name
หรือทำเวทมนตร์ regex ซึ่งฉันไม่สามารถทำ XD
หวังว่าจะช่วยได้ :)