CHỈNH SỬA: Vui lòng kiểm tra câu trả lời của Andy vì câu trả lời của anh ấy xuất hiện trước và đây chỉ là phần mở rộng của anh ấy
Tôi biết đây là một câu hỏi cũ, nhưng tôi nghĩ nó đáng để đưa vào Array.prototype.sort()
.
Đây là một ví dụ từ MDN cùng với liên kết
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
May mắn thay, nó không chỉ hoạt động với các con số:
arr.sort([compareFunction])
compareFunction
Chỉ định một hàm xác định thứ tự sắp xếp. Nếu bỏ qua, mảng được sắp xếp theo giá trị điểm mã Unicode của mỗi ký tự, theo sự chuyển đổi chuỗi của mỗi phần tử.
Tôi nhận thấy rằng bạn sắp xếp chúng theo tên:
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;
});
lưu ý rằng nếu bạn muốn đặt chúng theo họ, bạn sẽ phải có chìa khóa cho cả hai first_name
& last_name
hoặc thực hiện một số phép thuật regex, điều mà tôi không thể làm được XD
Hy vọng rằng sẽ giúp :)