Chương trình JavaScript để sắp xếp mảng đối tượng theo giá trị thuộc tính

Trong ví dụ này, bạn sẽ học cách viết một chương trình JavaScript sẽ sắp xếp một mảng các đối tượng theo các giá trị thuộc tính.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình JavaScript sau:

  • JavaScript Array sort ()
  • Mảng JavaScript
  • Đối tượng JavaScript

Ví dụ 1: Sắp xếp Mảng theo Tên Thuộc tính

 // program to sort array by property name function compareName(a, b) ( // converting to uppercase to have case-insensitive comparison const name1 = a.name.toUpperCase(); const name2 = b.name.toUpperCase(); let comparison = 0; if (name1> name2) ( comparison = 1; ) else if (name1 < name2) ( comparison = -1; ) return comparison; ) const students = ((name: 'Sara', age:24),(name: 'John', age:24), (name: 'Jack', age:25)); console.log(students.sort(compareName));

Đầu ra

 ((tên: "Jack", tuổi: 25), (tên: "John", tuổi: 24), (tên: "Sara", tuổi: 24))

Trong chương trình trên, sort()phương thức được sử dụng để sắp xếp một mảng theo thuộc tính tên của các phần tử đối tượng của nó.

Các sort()phương pháp phân loại phần tử của nó theo các giá trị được trả về bởi một hàm tùy chỉnh sắp xếp (compareName trong trường hợp này).

Đây,

  • Tên thuộc tính được thay đổi thành chữ hoa bằng toUpperCase()phương pháp này.
  • Nếu so sánh hai tên cho kết quả là 1 , thì thứ tự của chúng được thay đổi.
  • Nếu so sánh hai tên cho kết quả là -1 hoặc 0 , thì thứ tự của chúng được giữ nguyên.

Ví dụ 2: Sắp xếp Mảng theo Tuổi thuộc tính

 // program to sort array by property name function compareAge(a, b) ( return a.age - b.age; ) const students = ((name: 'Sara', age:24),(name: 'John', age:22), (name: 'Jack', age:27)); console.log(students.sort(compareAge));

Đầu ra

 ((tên: "John", tuổi: 22), (tên: "Sara", tuổi: 24), (tên: "Jack", tuổi: 27))

Trong chương trình trên, sort()phương thức được sử dụng để sắp xếp một phần tử mảng theo thuộc tính age.

Để so sánh thuộc tính tuổi của hai đối tượng, chúng ta chỉ cần trừ chúng đi.

  • Nếu sự khác biệt của chúng là một giá trị âm, thứ tự của chúng sẽ bị thay đổi.
  • Nếu sự khác biệt của chúng là một giá trị dương, thứ tự được giữ nguyên.

thú vị bài viết...