Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp đối tượng JavaScript theo độ dài thuộc tính mảng


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:

  1. Mohan (3 môn)
  2. Rohan (4 môn)
  3. Shawn (5 môn)
  4. 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).