Dưới đây là mã để sắp xếp mảng các đối tượng theo độ dài của thuộc tính mảng (array property) trong JavaScript.
Ví dụ
<!DOCTYPE html> <html lang="vi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Sort by array length</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } </style> </head> <body> <h1>Sắp xếp đối tượng JavaScript theo độ dài thuộc tính mảng</h1> <button class="Btn">NHẤN VÀO ĐÂY</button> <h3>Nhấn nút để sắp xếp các đối tượng trong arrObj theo độ dài mảng Subject</h3> <script> let BtnEle = document.querySelector(".Btn"); let arrObj = [ { name: "Rohan", Subject: ["Maths", "Science", "EVS", "SST"] }, { name: "Mohan", Subject: ["Maths", "Science", "SST"] }, { name: "Shawn", Subject: ["Maths", "Physics", "Chemistry", "Biology", "German"] }, { name: "Michael", Subject: ["Biology", "Hindi", "Sanskrit", "SST", "EVS", "Maths"] }, ]; BtnEle.addEventListener("click", () => { arrObj.sort((a, b) => (a.Subject.length > b.Subject.length ? 1 : -1)); console.log(arrObj); }); </script> </body> </html>
Kết quả
Mở console (F12) để xem mảng đã sắp xếp tăng dần theo Subject.length:
- Mohan (3 môn)
- Rohan (4 môn)
- Shawn (5 môn)
- Michael (6 môn)
Hàm so sánh (a, b) => a.Subject.length - b.Subject.length cũng hoạt động tương tự (trả về số âm/dương/0).