Bisakah Anda mengurutkan objek javascript?

Artikel ini akan membahas cara mengurutkan array objek berdasarkan nilai properti objek

Dalam JavaScript, kami menggunakan fungsi sort() untuk mengurutkan array objek. Fungsi sort()_ digunakan untuk mengurutkan elemen array berdasarkan abjad dan bukan numerik. Untuk mendapatkan item dalam urutan terbalik, kami dapat menggunakan metode reverse()

Namun, fungsi sort()_ tradisional kadang-kadang mungkin tertinggal untuk membandingkan array objek berdasarkan beberapa properti. Jadi kita dapat membuat fungsi perbandingan yang ditentukan pengguna untuk digunakan dengan fungsi sort(). Metode ini membandingkan properti item dalam array

Contoh di bawah menunjukkan cara menulis fungsi perbandingan Anda sendiri

let students = [
    {
        fname : "Rohan",
        lname : "Dalal",
        age : 19
    },

    {
        fname : "Zain",
        lname : "Ahmed",
        age : 17
    },

    {
        fname : "Anadi",
        lname : "Malhotra",
        age : 19
    }
];


function compare_lname( a, b )
  {
  if ( a.lname.toLowerCase() < b.lname.toLowerCase()){
    return -1;
  }
  if ( a.lname.toLowerCase() > b.lname.toLowerCase()){
    return 1;
  }
  return 0;
}

students.sort(compare_lname);
console.log(students)

Keluaran

[
  { fname: 'Zain', lname: 'Ahmed', age: 17 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 19 }
]
_

Pada contoh di atas, pertama, ubah

[
  { fname: 'Zain', lname: 'Ahmed', age: 17 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 19 }
]
_2 menjadi huruf kecil lalu kita bandingkan nama-namanya tergantung pada perbandingan string. Ini mengembalikan array objek yang diurutkan berdasarkan
[
  { fname: 'Zain', lname: 'Ahmed', age: 17 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 19 }
]
2 objek. Untuk urutan menurun, kita dapat mengganti fungsi sort() dengan reverse()

Jika kita berurusan dengan string, kita dapat menghilangkan kebutuhan untuk membuat fungsi pembanding dan cukup menggunakan fungsi

[
  { fname: 'Zain', lname: 'Ahmed', age: 17 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 19 }
]
6 dengan fungsi sort() untuk mendapatkan hasil yang diinginkan

Lihat kode di bawah ini

let students = [
    {
        fname : "Rohan",
        lname : "Dalal",
        age : 19
    },

    {
        fname : "Zain",
        lname : "Ahmed",
        age : 21
    },

    {
        fname : "Anadi",
        lname : "Malhotra",
        age : 16
    }
];


students.sort((a, b) => a.lname.localeCompare(b.lname));
console.log(students);

Keluaran

[
  { fname: 'Zain', lname: 'Ahmed', age: 21 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 16 }
]
_

[
  { fname: 'Zain', lname: 'Ahmed', age: 17 },
  { fname: 'Rohan', lname: 'Dalal', age: 19 },
  { fname: 'Anadi', lname: 'Malhotra', age: 19 }
]
6 hanya berfungsi untuk string. Kami tidak dapat menggunakan ini untuk angka

Untuk mendapatkan larik terurut berdasarkan beberapa properti numerik, kita harus menyediakan beberapa fungsi pembanding dalam metode sort() karena metode sort() biasanya juga tidak bekerja dengan angka

Lihat kode di bawah ini

let students = [
    {
        fname : "Rohan",
        lname : "Dalal",
        age : 19
    },

    {
        fname : "Zain",
        lname : "Ahmed",
        age : 21
    },

    {
        fname : "Anadi",
        lname : "Malhotra",
        age : 16
    }
];

students.sort((a, b) => {
    return a.age - b.age;
});
console.log(students);
_

Contoh di atas membandingkan umur benda dan mengurutkannya berdasarkan umur tersebut. Fungsi bandingkan hanya satu baris, jadi disediakan langsung dengan metode sort(). Untuk mendapatkan semuanya dalam urutan menurun, gunakan fungsi reverse()

Alternatifnya, kita juga bisa menggeser urutan dalam fungsi bandingkan untuk mendapatkan hasil akhir dalam urutan menurun

Pssst. BOOTCAMP PENGEMBANGAN WEB 2023 dimulai pada 01 FEBRUARI 2023. Bergabunglah dengan daftar tunggu, pesan tempat Anda dalam kursus kelompok 10 minggu saya dan pelajari dasar-dasarnya, HTML, CSS, JS, Tailwind, React, Next. js dan banyak lagi. ✨

Misalkan Anda memiliki array objek

Anda mungkin mengalami masalah ini. bagaimana Anda mengurutkan array objek ini berdasarkan nilai properti?

Katakanlah Anda memiliki larik objek seperti ini

const list = [
  { color: 'white', size: 'XXL' },
  { color: 'red', size: 'XL' },
  { color: 'black', size: 'M' }
]
_

Anda ingin merender daftar ini, tetapi pertama-tama Anda ingin mengurutkannya berdasarkan nilai salah satu properti. Misalnya Anda ingin memesannya berdasarkan nama warna, sesuai urutan abjad. hitam, merah, putih

Anda dapat menggunakan metode sort() dari Array, yang menggunakan fungsi callback, yang mengambil parameter 2 objek yang terdapat dalam array (yang kita sebut a dan b)

list.sort((a, b) => (a.color > b.color) ? 1 : -1)

Saat kita mengembalikan 1, fungsi berkomunikasi dengan sort() bahwa objek b diutamakan dalam menyortir objek a. Mengembalikan

list.sort((a, b) => (a.color > b.color) ? 1 : -1)
_0 akan melakukan sebaliknya

Fungsi panggilan balik juga dapat menghitung properti lain, untuk menangani kasus di mana warnanya sama, dan memesan berdasarkan properti sekunder juga

Bisakah kita mengurutkan objek dalam JavaScript?

Larik objek dapat diurutkan dengan membandingkan nilai salah satu propertinya .

Bagaimana Anda mengatur objek dalam JavaScript?

Untuk mengurutkan array objek, Anda menggunakan metode sort() dan memberikan fungsi perbandingan yang menentukan urutan objek .

Bagaimana kita bisa mengurutkan elemen dari suatu objek?

Mengurutkan daftar Objek dalam Urutan naik dan turun .
Buat objek Order sebagai objek kustom atau domain
Terapkan antarmuka Sebanding dan Komparator untuk mendefinisikan logika pengurutan
Sortir daftar Objek menggunakan Koleksi. metode pengurutan

Bagaimana cara mengurutkan properti dalam objek JavaScript?

Bagaimana Mengurutkan Larik Berdasarkan Properti Objek di JavaScript? . The array. metode sort() memfasilitasi pengurutan elemen array dengan menggunakan fungsi callback . Fungsi panggilan balik mengulangi semua elemen berdasarkan properti objek dalam larik.