Program JavaScript untuk Mengurutkan Array Objek berdasarkan Nilai Properti

0
(0)

Contoh 1: Urutkan Array berdasarkan Nama Properti

// 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));

Keluaran

[{name: "Jack", age: 25},
{name: "John", age: 24},
{name: "Sara", age: 24}]

Pada program di atas, sort() metode yang digunakan untuk mengurutkan array dengan nama properti elemen objeknya.

Itu sort() metode mengurutkan elemennya sesuai dengan nilai yang dikembalikan oleh fungsi sortir kustom (bandingkanNama pada kasus ini).

Sini,

  • Nama properti diubah menjadi huruf besar menggunakan toUpperCase() metode.
  • Jika membandingkan dua nama menghasilkan 1, maka urutannya diubah.
  • Jika membandingkan dua nama menghasilkan -1 atau 0, maka pesanan mereka dibiarkan apa adanya.

Contoh 2: Urutkan Array berdasarkan Umur Properti

// 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));

Keluaran

[{name: "John", age: 22},
{name: "Sara", age: 24},
{name: "Jack", age: 27}]

Pada program di atas, sort() metode ini digunakan untuk mengurutkan elemen array dengan usia Properti.

Untuk membandingkan usia properti dari dua objek, kita cukup menguranginya.

  • Jika selisihnya bernilai negatif, urutannya diubah.
  • Jika perbedaannya adalah nilai positif, urutannya dibiarkan apa adanya.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.