JavaScript: Mengisih Tatasusunan Objek mengikut Nilai Harta

JavaScript: Mengisih Tatasusunan Objek mengikut Nilai Harta
JavaScript

Mengisih Objek JavaScript mengikut String Property

Mengisih tatasusunan objek ialah tugas biasa dalam JavaScript, terutamanya apabila bekerja dengan data yang perlu dipaparkan dalam susunan tertentu. Satu senario biasa melibatkan pengisihan tatasusunan objek mengikut nilai sifat rentetan, seperti nama akhir atau tajuk.

Dalam artikel ini, kita akan meneroka cara mengisih tatasusunan objek JavaScript mengikut nilai sifat rentetan. Kami akan memeriksa penggunaan kaedah `sort()` dan membincangkan sama ada langkah tambahan, seperti menambahkan kaedah `toString()` pada objek, adalah perlu.

Perintah Penerangan
sort(function(a, b) {...}) Mentakrifkan fungsi pengisihan tersuai untuk menentukan susunan elemen tatasusunan berdasarkan kriteria tertentu.
localeCompare() Membandingkan dua rentetan dalam tempat semasa, mengembalikan nombor yang menunjukkan sama ada rentetan rujukan datang sebelum atau selepas atau sama dengan rentetan yang diberikan.
console.log() Mengeluarkan maklumat ke konsol, biasanya untuk tujuan nyahpepijat.

Penjelasan Terperinci Pengisihan Objek JavaScript

Skrip yang disediakan di atas direka untuk mengisih tatasusunan objek JavaScript mengikut nilai sifat rentetan yang dipanggil last_nom. Dalam contoh pertama, kami menggunakan sort(function(a, b) {...}) kaedah, yang membolehkan kami mentakrifkan fungsi pengisihan tersuai. Fungsi ini membandingkan last_nom sifat setiap objek. Jika objek pertama last_nom adalah kurang daripada objek kedua last_nom, ia mengembalikan -1, menunjukkan bahawa objek pertama harus datang sebelum yang kedua. Jika objek pertama last_nom adalah lebih besar, ia mengembalikan 1, bermakna objek pertama harus datang selepas yang kedua. Jika mereka sama, ia mengembalikan 0, menunjukkan bahawa kedudukan mereka harus kekal tidak berubah.

Skrip kedua menggunakan sintaks ES6 yang lebih ringkas. The localeCompare() kaedah digunakan dalam sort() berfungsi untuk membandingkan last_nom sifat-sifat objek. Kaedah ini mengembalikan nombor yang menunjukkan sama ada rentetan datang sebelum, selepas, atau sama dengan rentetan lain dalam tempat semasa. The console.log() fungsi digunakan dalam kedua-dua skrip untuk mengeluarkan tatasusunan yang diisih ke konsol untuk pengesahan. Kedua-dua kaedah secara berkesan menyusun tatasusunan objek mengikut last_nom hartanah, menunjukkan cara mengendalikan pengisihan harta objek dalam JavaScript.

Mengisih Tatasusunan Objek mengikut Harta Rentetan dalam JavaScript

JavaScript sisi pelanggan

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Mengisih Tatasusunan Objek mengikut Harta Rentetan Menggunakan Sintaks ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Mengisih Tatasusunan Objek mengikut Harta Rentetan dalam JavaScript

JavaScript sisi pelanggan

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Menyusun Susunan Objek mengikut Harta Rentetan Menggunakan Sintaks ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Teknik Lanjutan untuk Menyusun Objek dalam JavaScript

Apabila menyusun tatasusunan objek mengikut sifat rentetan dalam JavaScript, adalah penting untuk memahami selok-belok sort() kaedah. Secara lalai, the sort() kaedah menyusun elemen sebagai rentetan. Ini boleh membawa kepada hasil yang tidak dijangka apabila berurusan dengan nombor atau aksara khas. Untuk memastikan pengisihan yang tepat, terutamanya dengan sifat rentetan, anda harus menggunakan fungsi bandingkan tersuai. Selain daripada localeCompare(), satu lagi teknik berguna ialah mengendalikan kepekaan kes. Perbandingan rentetan JavaScript adalah sensitif huruf besar-kecil secara lalai, jadi 'a' akan dianggap kurang daripada 'A'. Untuk mengelakkan ini, anda boleh menukar semua rentetan kepada sama ada huruf kecil atau besar dalam fungsi bandingkan anda.

Satu lagi aspek penting untuk dipertimbangkan ialah pengisihan mengikut berbilang sifat. Sebagai contoh, jika dua objek mempunyai sama last_nom nilai, anda mungkin mahu menyusunnya dengan lebih lanjut first_nom. Ini boleh dicapai dengan melanjutkan fungsi bandingkan tersuai untuk memasukkan syarat tambahan. Pengisihan berbilang peringkat sedemikian memastikan data disusun secara menyeluruh, memberikan hasil yang lebih bermakna. Dengan memahami dan menggunakan teknik pengisihan lanjutan ini, anda boleh mengendalikan senario pengisihan data yang lebih kompleks dengan berkesan dalam JavaScript.

Soalan Biasa tentang Mengisih Objek JavaScript

  1. Bagaimanakah anda mengisih pelbagai objek mengikut sifat rentetan?
  2. Menggunakan sort() kaedah dengan fungsi bandingkan tersuai, menggunakan localeCompare() untuk perbandingan rentetan.
  3. Adakah pengisihan JavaScript sensitif huruf besar-besaran?
  4. Ya, secara lalai. Tukar rentetan kepada huruf kecil atau besar dalam fungsi bandingkan untuk mengelakkan ini.
  5. Bagaimanakah anda mengendalikan pengisihan mengikut berbilang sifat?
  6. Panjangkan fungsi perbandingan tersuai untuk memasukkan syarat tambahan untuk mengisih mengikut sifat sekunder.
  7. Adakah anda perlu menambah a toString() kaedah kepada objek anda untuk mengisih?
  8. Tidak, menggunakan fungsi bandingkan tersuai sudah memadai.
  9. Apakah localeCompare() buat?
  10. Ia membandingkan dua rentetan dalam tempat semasa dan mengembalikan nombor yang menunjukkan pesanan mereka.
  11. Bolehkah anda mengisih objek mengikut sifat berangka menggunakan kaedah yang sama?
  12. Ya, anda boleh menyesuaikan fungsi bandingkan untuk mengendalikan perbandingan angka juga.
  13. Bagaimanakah anda mengeluarkan tatasusunan yang diisih?
  14. guna console.log() untuk mencetak tatasusunan yang diisih ke konsol untuk pengesahan.
  15. Apakah kepentingan nilai pulangan dalam fungsi bandingkan?
  16. Mereka menentukan susunan unsur: -1 untuk kurang daripada, 1 untuk lebih besar daripada, dan 0 untuk sama.

Membungkus Pengisihan Objek dalam JavaScript

Mengisih tatasusunan objek dengan sifat rentetan dalam JavaScript boleh dicapai dengan cekap menggunakan sort() kaedah dengan fungsi bandingkan tersuai. Dengan memanfaatkan localeCompare() dan mengendalikan sensitiviti kes, anda boleh memastikan pengisihan data yang tepat dan bermakna. Memahami teknik ini membolehkan manipulasi dan persembahan data yang lebih baik, memenuhi senario yang lebih kompleks dengan mudah. Selain itu, pengisihan mengikut berbilang sifat menambah satu lagi lapisan kecanggihan, menjadikan output yang diisih lebih relevan dan teratur.