Array, peta, dan set. 3 dari struktur data terpenting dalam Javascript dan di permukaan, 3 ini terlihat lebih mirip daripada berbeda dalam hal apa yang mereka lakukan dan untuk apa mereka digunakan. Tetapi ketika Anda melihat lebih dekat pada setiap struktur data, seperti yang akan kita lakukan di artikel ini, Anda akan melihat bahwa setiap struktur data memiliki kasus penggunaan yang berbeda sehingga optimal untuk mereka. Tanpa mencari solusi menggunakan banyak array yang sudah dikenal untuk setiap masalah yang Anda temui, memahami perbedaan dan kasus penggunaan dari masing-masing struktur data ini akan memberi Anda kemampuan untuk menghasilkan solusi optimal dengan menggunakan struktur data terbaik untuk kasus tertentu tersebut Show
Pertama, mari kita lihat apa masing-masing struktur data ini ArrayArray adalah struktur data yang menyimpan data jenis apa pun dalam objek Javascript seperti daftar. Anda dapat membuat array dengan mendeklarasikannya secara eksplisit seperti pada contoh di bawah ini
Setiap item dalam array memiliki indeks mulai dari 0. Anda dapat mengakses setiap item menggunakan indeksnya _Anda dapat mengubah nilai item pada indeks tertentu
Dapatkan indeks item array berdasarkan nilainya
Anda dapat menambahkan item ke array kosong atau tidak kosong menggunakan salah satu metode berikut _PetaPeta adalah objek yang menyimpan item sebagai pasangan kunci-nilai. Kunci dapat berupa tipe data apa pun asalkan setiap kunci unik. Nilai juga bisa berupa tipe data apa pun, tetapi tidak harus unik. Untuk membuat objek peta baru, Anda perlu memanggil konstruktornya
Gunakan Peta. prototipe. set(key, value) untuk menambahkan pasangan kunci-nilai baru ke objek peta _Anda dapat mengakses nilai yang disimpan di peta menggunakan kunci dan Petanya. prototipe. dapatkan (kunci) metode
Anda dapat menggunakan metode set sebelumnya untuk mengubah nilai item yang disimpan _MengaturSet adalah objek yang menyimpan kumpulan nilai. Setiap nilai yang disimpan dalam satu set adalah unik dan dapat berupa tipe data apa pun. Sebuah set dibuat menggunakan konstruktor set _Menambahkan nilai ke set dilakukan dengan menggunakan Set. prototipe. menambahkan (nilai) metode _0Sekarang Anda telah memiliki pengantar yang tepat untuk masing-masing dari 3 struktur data, mari kita lihat bagaimana susunan vs peta vs adil dalam skenario yang berbeda Array bukanlah Benda PadatPerhatikan contoh berikut _1Dalam skenario di atas, meskipun indeks akhir dari objek arr awal adalah 3, menetapkan nilai ke indeks 6 dapat diterapkan tanpa menimbulkan kesalahan. Dua indeks antara 3 dan 6, yang tidak diberi nilai, tampak kosong di larik yang dihasilkan. Ini karena array belum tentu padat. Anda dapat menambah panjang array dengan penetapan nilai seperti pada kasus di atas, sambil tetap memiliki slot kosong di antara indeks pertama dan terakhir _2Apakah array tetap padat atau tidak pada akhirnya adalah pilihan programmer dan use case yang digunakan untuk itu Anda dapat menganggap set dan peta padat secara default karena strukturnya tidak memungkinkan skenario seperti di atas terjadi. Ukurannya sama dengan jumlah item yang disimpan dalam objek _3Mengambil Item TunggalMeskipun peta dan larik menyediakan metode untuk mengambil item tunggal secara langsung menggunakan kunci, indeks, atau nilai, metode seperti itu tidak tersedia untuk kumpulan _4Satu-satunya cara untuk mengambil nilai dalam satu set adalah dengan mengulanginya. Untuk kasus penggunaan yang memerlukan akses langsung dan mudah ke nilainya, set tidak cocok Menggunakan Array untuk Membuat Peta dan SetArray dapat digunakan dalam membuat peta dan set. Konstruktor kelas Map dan Set menerima objek Iterable (seperti array) sebagai argumen Pertama, mari kita lihat cara membuat satu set menggunakan array _5Untuk membuat Peta, kita membutuhkan array 2 dimensi (array of arrays). Jika setiap larik dalam dimensi ke-2 memiliki panjang 2, nilai pada indeks 0 dari setiap larik menjadi kunci dan nilai pada indeks 1 menjadi nilai. Jika tidak, peta baru masih dibuat, dengan beberapa pasangan kunci-nilai ganjil. Jika nilai pada dua indeks nol dalam larik tingkat ke-2 sama, larik yang datang ke-2 menggantikan nilai yang disimpan di bawah kunci itu _6Menyimpan DuplikatSecara default, set tidak menyimpan nilai duplikat. Karena setiap kunci dalam peta unik, kunci duplikat juga tidak dapat disimpan. Namun, array cenderung menyimpan duplikat. Tentu saja, itu tergantung pada kasus penggunaan apakah menyimpan duplikat adalah hal yang baik atau buruk, dan itu akan membantu Anda memutuskan struktur data mana yang akan digunakan untuk acara tersebut. Iterasi Menggunakan for…in dan forEachArray, peta, dan set dapat diulang menggunakan for…of loop. Dalam larik dan set, loop beriterasi pada nilai yang disimpan, dan di peta, loop beriterasi pada setiap pasangan kunci-nilai. Di set dan peta, iterasi terjadi dalam urutan penyisipan. Dalam array, iterasi terjadi dalam urutan indeks _7Anda juga dapat melakukan iterasi hanya pada kunci atau nilai peta dengan perulangan for…of _8forEach juga dapat digunakan untuk mengulangi 3 struktur data ini _9Menghapus ElemenArray, peta, dan set memiliki metode untuk menghapus item yang disimpan dari objek. Metode penghapusan agak mirip di peta dan set 0Array menggunakan Array. prototipe. splice() metode untuk menghapus item dari array 1Pada kode di atas, parameter pertama dari metode sambatan adalah indeks posisi untuk mulai menghapus item. Parameter kedua mengatakan berapa banyak item dari awal yang harus dihapus Menghapus item dari array menggunakan nilai item cukup lambat dibandingkan dengan operasi hapus set atau peta Penggunaan NaNDalam Javascript, NaN. == NaN adalah pernyataan yang benar. Namun, dalam set dan peta, algoritme yang digunakan untuk menentukan persamaan nilai dan persamaan kunci, masing-masing, menganggap NaN sama dengan NaN (terdengar aneh, saya tahu). Karena itu, NaN dapat digunakan sebagai kunci unik di peta dan nilai unik di set (di mana keunikan kunci atau nilai diperiksa). Array dapat menyimpan NaN sebagai nilai tanpa pertimbangan kesetaraan karena nilai array tidak harus unik KesimpulanSekarang Anda tahu apa itu array, peta, dan set serta perbedaannya, Anda dapat menggunakan pengetahuan ini dengan tepat saat memprogram. Saat Anda menghadapi masalah yang memerlukan penggunaan struktur data, luangkan waktu sejenak untuk memikirkan mana dari 3 ini, atau struktur data lain yang Anda ketahui, yang paling sesuai dengan tugas yang ada. Ini akan membuat program Anda lebih cepat, lebih bersih, dan lebih optimal dari sebelumnya. Apakah Ditetapkan lebih cepat dari objek JavaScript?TL. DR Set hampir dua kali lebih cepat daripada Object .
Kapan menggunakan Set atau peta dalam JavaScript?Ringkasan. Gunakan Kumpulan saat kumpulan data Anda harus terdiri dari nilai unik . Gunakan Peta saat Anda memiliki pasangan data terkait .
Apakah peta lebih cepat daripada objek JavaScript?Menurut tolok ukur saya, kecuali kuncinya adalah string bilangan bulat kecil, Peta memang lebih berkinerja daripada Objek dalam kecepatan penyisipan, penghapusan, dan iterasi, and it consumes less memory than an object of the same size.
Apakah Peta JavaScript lambat?map() melakukan beberapa logika tambahan yang memperlambatnya secara signifikan dibandingkan dengan for loop mentah . |