Array menyediakan begitu banyak metode. Untuk mempermudah, dalam bab ini metode-metode tersebut dibagi menjadi beberapa kelompok. Show Kita sudah tahu metode-metode yang menambahkan dan menghapus item dari bagian awal atau akhir array:
Berikut ini ada beberapa metode lainnya. Bagaimana cara untuk menghapus sebuah elemen dari array? Array merupakan objek, jadi kita bisa coba menggunakan 8:
Elemen tersebut telah dihapus, tetapi array itu masih memiliki 3 elemen, kita bisa melihat bahwa 9.Hal itu alami, karena 0 menghilangkan sebuah nilai berdasarkan 1. Itulah yang dilakukannya. Tidak masalah bagi objek. Tapi untuk array kita biasanya ingin elemen yang tersisa untuk bergeser dan mengisi ruang yang dikosongkan tadi. Kita ingin memiliki sebuah array yang lebih pendek sekarang.Jadi, metode khusus harus digunakan. Metode arr.splice(start) adalahs sebuah fungsi serbaguna untuk array. Splice bisa melakukan banyak hal: memasukkan, menghilangkan serta mengganti elemen. Sintaksnya yakni:
Dimulai dari posisi 2: menghapus elemen 3 dan kemudian memasukkan 4 di tempatnya masing-masing. Mengembalikan array yang tersusun atas elemen yang dihapus.Metode ini mudah untuk dipahami melalui contoh. Mari mulai dengan penghapusan:
Mudah, kan? Mulai dari indeks 5 metode ini menghilangkan elemen di indeks 5.Dalam contoh selanjutnya kita menghilangkan 3 element dan menggantinya dengan 2 elemen lain:
Di sini kita dapat melihat bahwa 7 mengembalikan array yang berisi elemen terhapus:
Metode 7 juga mampu memasukkan elemen tanpa menghilangkan elemen apapun yang ada sebelumnya. Untuk itu kita perlu mengatur 3 menjadi 0:
Indeks berangka negatif diperbolehkan Di sini dan di metode array lainnya, indeks (berangka) negatif diperbolehkan. Indeks-indeks tersebut menspesifikasikan posisi dari bagian akhir sebuah array, seperti ini:
Metode arr.slice lebih sederhana daripada metode serupa sebelumnya yakni 1.Sintaksnya adalah:
Metode ini mengembalikan sebuah sebuah array baru hasil salinan semua item yang ada dari indeks 2 hingga 3 (indeks 3 tidak termasuk). Baik 2 maupun 3 bisa saja negatif, dalam kasus tersebut posisi dari bagian akhir array sudah diasumsikan/diperkirakan.Mirip dengan metode string 7, namun membuat subarray bukan substring.Contohnya:
Kita juga bisa memanggil metode tersebut tanpa argumen: 8 membuat sebuah salinan dari 9. Cara demikian seringkali digunakan untuk mendapatkan sebuah salinan untuk transformasi yang lebih jauh tanpa mempengaruhi array yang asli.Metode arr.concat membuat sebuah array baru yang sudah termasuk nilai-nilai dari array lainnya serta item-item tambahan. Sintaksnya sebagai berikut:
Sintaks tersebut menerima berapapun argumen – bisa jadi array atau nilai. Hasilnya adalah sebuah array yang berisi item dari 9, kemudian 1, 2 dan sebagainya.Jika sebuah argumen 3 adalah sebuah array, makan semua elemennya akan disalin. Jika tidak, argumen itu sendiri yang akan disalin.Sebagai contoh: 0Normalnya, metode ini hanya menyalin elemen-elemen dari array. Objek lainnya, bahkan jika objek-objek tersebut terlihat seperti array, akan ditambahkan secara keseluruhan: 1…Tetapi jika sebuah objek mirip array memiliki sebuah properti khusus 4, maka objek tersebut diperlakukan sebagai sebuah array dengan 5: elemennya ditambahkan: 2Metode arr.forEach membuat kita dapat menjalankan sebuah fungsi untuk setiap elemen yang ada di dalam array. Sintaksnya: 3Sebagai contoh, kode berikut ini menampilkan tiap elemen dalam array: 4Dan kode ini lebih rinci tentang posisi elemen-elemen tersebut dalam array yang dituju: 5Hasil dari fungsi tersebut (jika mengembalikan sesuatu) dibuang dan diabaikan. Kini mari membahas metode-metode yang bertugas mencari dalam array. Metode arr.indexOf, arr.lastIndexOf dan arr.includes memiliki sintaks yang sama dan pada dasarnya keduanya melakukan fungsi yang samahave the same syntax, namun untuk mengoperasikannya perlu ditujukan item bukan karakter:
Contohnya: 6Perlu diperhatikan bahwa metode tersebut menggunakan perbandingan 5. Jadi, jika kita mencari 6, metode ini akan tepat mencari 6 dan bukan nol.Jika kita ingin memeriksa pencantuman, dan tidak ingin tahu indeks yang persis, maka direkomendasikan menggunakan 8.Juga, perbedaan kecil dari 9 yakni metode ini menangani 0 dengan tepat, tidak seperti 1: 7Bayangkan kita memiliki sebuah array berisi objek. Bagaimana cata kita menemukan sebuah objek dengan kondisi tertentu? Berikut ini ada metode arr.find(fn) yang dapat mudah digunakan. Sintaksnya: 8Fungsi tersebut dipanggil untuk elemen-elemen dalam array, satu sama lainnya:
Jika fungsi tersebut mengembalikan 4, pencarian dihentikan, lalu 7 akan dikembalikan. Jika tidak ditemukan apa-apa, 7 yang dikembalikan.Sebagai contoh, kita memiliki sebuah array berisi elemen pengguna, tiap pengguna memiliki field 8 dan 9. Mari cari pengguna dengan 00: 9Pada kehidupan nayata array berisi objek adalah hal yang umum, jadi metode 01 sangatlah berguna.Ingat bahwa contoh yang kami berikan untuk mencari ( 01) fungsi 03 hanya dengan satu argumen. Ini adalah hal umum, argumen lainnya pada fungsi lainnya jarang digunakan.Metode arr.findIndex pada dasarnya sama, namun mengembalikan indeks dimana elemen tersebut ditemukan bukan elemen itu sendiri serta mengembalikan 9 ketika tidak ditemukan apapun.Metode 01 mencari sebuah elemen tunggal (pertama) yang akan membuat fungsi tersebut mengembalikan 4.Jika ada banyak elemen demikian, kita bisa menggunakanarr.filter(fn). Sintaksnya mirip dengan 01, tetapi 08 mengembalikan array yang berisi elemen-elemen yang cocok: 0Sebagai contoh: 1Mari lanjutkan ke metode-metode yang mengubah dan mengatur ulang array. Metode arr.map adalah salah satu metode yang paling berguna dan paling sering digunakan. Metode ini memanggil fungsi untuk tiap elemen di array dan mengembalikan hasilnya dalam bentuk array. Sintaksnya yakni: 2Sebagai contoh, di sini kita mengubah setiap elemen menjadi panjang (length) dari string elemen tersebut: 3Panggilan arr.sort() menata array dalam wadah, mengubah urutan elemen yang ada. Metode ini juga mengembalikan array yang sudah tertata, tetapi nilai yang dikembalikan biasanya diabaikan, mengingat 9 itu sendiri sudah termodifikasi/diubah.Contohnya: 4Apa kamu menyadari adanya keanehan dari hasil di atas? Urutannya menjadi 10. Tidak benar. Tapi mengapa demikian?Item-item tersebut diurutkan sebagai string secara pada dasarnya. Secara harfiah, semua elemen dikonversi menjadi string untuk dibandingkan. Sedangkan pada string, berlaku pengurutan leksikograpis dan memang benar bahwa 11.Untuk menggunakan urutan penataan kita sendiri, kita perlu memberikan sebuah fungsi sebagai argumen pada 12.Fungsi tersebut harus membandingkan dua nilai yang berubah-ubah dan mengembalikan (hasilnya): 5Contoh, untuk mengurutkan elemen sebagai angka: 6Kini metode tersebu berfungsi seperti yang diinginkan. Mari berhenti sejenak dan pikirkan apa yang terjadi. 9 bisa jadi array berisi apapun, benar? Array itu bisa saja berisi angka atau string atau objek atau apapun. Kita memiliki sekumpulan beberapa item. Untuk mengurutkannya, kita perlu sebuah fungsi pengurutan yang tahu bagaimana cara untuk membandingkan elemen-elemen. Setelan awalnya adalah sebuah urutan string.Metode 14 mengimplementasikan sebuah algoritma pengurutan yang umum. Kita tidak perlu benar-benar tahu bagaimana algoritma itu bekerja (sebuah cara cepat/quicksort yang sudah teroptimasi sepanjang waktu). Algoritma itu akan menyusuri array, membandungkan elemen-elemennya menggunakan fungsi yang diberikan dan mengurutkan ulang elemen-elemen tersebut, yang perlu kita lakukan yakni memberikan 15 yang mana akan melakukan operasi perbandingan.Ngomong-omong, jika kita pernah ingin tahu elemen mana saja yang dibandingkan – cukup dengan cara memberi alert: 7Algoritma tersebut dapat membandingkan sebuah elemen dengan banyak elemen lainnya dalam proses ini, tapi algoritma itu akan mencoba membuat sedikit mungkin perbandingan. Sebuah fungsi perbandingan dapat mengembalikan angka manapun Sebenarnya, sebuah fungsi perbandingan hanya perlu untuk mengembalikan sebuah angka positif untuk mengatakan “lebih besar (dari)” dan angka negatif untuk mengatakan “kurang (dari)”. Hal tersebut membuat penulisan fungsi jadi lebih pendek: 8Fungsi arrow yang terbaik Ingat fungsi arrow? Kita dapat menggunakan fungsi arrow di sini untuk pengurutan yang lebih rapi: 9Fungsi ini berfungsi samahalnya dengan metode versi yang lebih panjang di atasnya. Metode arr.reverse membalikkan urutan elemen di dalam 9.Contohnya: 0Metode ini juga mengembalikan array 9 setelah proses pembalikan.Ini adalah situasi dari dunia nyata. Kita menulis sebuah aplikasi olahpesan, dan orang tersebut memasukkan ke dalam daftar penerima yang dipisahkan oleh tanda koma, antara lain: 18. Namun bagi kita array yang berisi nama akan jauh lebih apik ketimbang sebuah string. Jadi bagaiman cara mendapatkannya?Metode str.split(delim) melakukan tepat hal yang dijelaskan di atas. Metode ini memisahkan string ke dalam array dengan delimiter (pemisah) 19.Dalam contoh berikut ini, kita memisahkan elemen dengan tanda koma yang diikuti oleh spasi: 1Metode 20 memiliki argumen numerik oposional kedua – sebuah batas pada panjang (length) array. Jika batasan itu diberikan, maka elemen ekstra (lebih dari batas panjang array yang diberikan) akan diabaikan. Dalam praktiknya, hal ini jarang digunakan: 2Pisah menjadi huruf Panggilan 21 dengan 22 yang kosong akan memisahkan string menjadi array yang berisi huruf-huruf: 3Panggilan arr.join(glue) melalukan pembalikan ke 20. Panggilan ini membuat sebuah string item-item 9 digabungkan oleh 25 (lem) diantara item tersebut.Contohnya: 4Ketika kita perlu mengulang-ulang sebuah array – kita dapat menggunakan 26, 27 atau 28.Ketika kita perlu mengulang dan mengembalikan data setiap elemen – kita menggunakan 29.Metode arr.reduce dan metode arr.reduceRight juga termasuk ke dalam kelompok metode-metode tadi, tapi ada sedikit lebih rumit. Kedua metode ini digunakan untuk menghitung sebuah nilai tunggal berdasarkan array. Sintaksnya yakni: 5Fungsi di atas diterapkan pada semua elemen array satu sama lainnya dan “melanjutkan” hasil perhitungannya ke panggilan berikutnya. Argument-argumennya yakni:
Jika fungsi sudah diterapkan, masil dari panggilan fungsi sebelumnya dioper ke panggilan selanjutnya sebagai argumen pertama. Memang terdengar rumit, tapi tidak seperti yang kamu pikirkan tentang argumen pertama sebagai “akumulator” yang menyimpan dan menggabungkan jasil dari semua eksekusi sebelumnya. Serta pada akhirnya, itu menjadi hasil dari 36.Cara termudah untuk memahami metode ini adalah dengan melihat contohnya. Di sini kita mendapat jumlah dari sebuah array dalam satu baris: 6Fungsi yang dioper ke 36 hanya menggunakan 2 argumen, itu cukup khas.Mari lihat rincian dari apa yang terjadi.
Alur perhitungannya: ATau dalam bentuk sebuah tabel, dimana setiap baris merepresentasikan sebuah panggilan fungsi pada elemen array selanjutnya: 38 42resultthe first call 0 5 5the second call 5 46 55the third call 55 55 58the fourth call 58 60 61the fifth call 61 63 64Di sini kita bisa dengan jelas melihat bagaimana hasil dari panggilan sebelumnya menjadi argumen pertama pada panggilan berikutnya. Kita bisa juga mengjilangkan nilai awal (initial): 7Hasilnya sama. Itu karena tidak ada nilai awal, maka 36 mengambil elemen pertama array sebagai nilai awal dan memulai pengulangan dari elemen ke-dua.Tabel perhitungan tersebut sama dengan yang di atas, tanpa baris pertama. Akan tetapi, penggunaan yang demikian membutuhkan perhatian lebih. Jika array kosong, maka panggilan 36 tanpa nilai awal akan menghasilkan error.Berikut ini contohnya: 8Jadi sangat disarankan untuk selalu menspesifikasikan nilai awal. Metode arr.reduceRight melaksanakan hal yang sama, tapi beroperasi dari kanan ke kiri. Array tidak membentuk sebuah bahasa tipe sendiri. Array terbentuk berdasarkan objek. Jadi 67 tidak membantu membedakan sebuah objek polos dari sebuah array: 9…Tetapi array serung diguakan hingga ada metode khusus untuk hal ini: Array.isArray(value). Metode ini mengembalikan 4 jika 69 adalah sebuah array, dan 6 jika sebaliknya. 0Hamppir semua metode array yang memanggil fungsi – seperti 01, 08, 29, dengan pengecualian 74, menerima paramater tambahan yakni 75.Parameter itu tidak dijelaskan pada bab sebelumnya, karena jarang digunakan. Tetapi demi kelengkapan kita harus menutupi metodenya. Berikut ini adalah sintkas lengkap dari metode-metode tersebut: 1Nilai dari paramater 75 menjadi 77 untuk 78.Contohnya, di sini kita menggunakan metode dengan objek 79 sebagai penyaringnya, dan 75 mengoper konteksnya: 2Jika dalam contoh di atas kita menggunakan 81, maka 82 akan bisa dipanggil sebagai fungsi yang berdisi sendiri, dengan 83, itu smeua berujung pada error seketika.Sebuah panggilan ke 84 bisa diganti dengan 85, yang mana melakukan hal yang sama. Metode yang pertama ( 84) lebih sering digunakan, karena sedikit lebih mudah dimengerti oleh banyak orang.Cheat sheet tentang metode-metode array:
Tolong diingat bahwa metode 74, 25 dan 7 memodifikasi array itu sendiri.Metode-metode ini adalah yang paling sering digunakan, mencakupi 99% kasus penggunaan. Namun masih ada beberapa metode lainnya:
Untuk daftar lengkapnya, lihat manual. Sejak pandangan pertama mungkin terlihat ada begitu banyak metode, cukup sulit untuk diingat. Namun sebenarnya hal itu jauh lebih mudah. Lihat cheat sheet hanya untuk sekedar tahu semua metode tersebut. Lalu selesaikan task bab ini sebagai latihan, jadi kamu memiliki pengalaman mengenai metode array. Sesudah itu kapan pun kamu perlu melakukan sesuatu dengan array, dan tidak tahu bagaimana caranya – datanglah ke halaman ini, lihat cheat sheet dan temukan metode yang tepat. Contoh-contoh yang diberikan akan membantumu dalam penulisan sintaks yang benar. Setelah itu kamu akan secara otomatis mengingat metode-metode tersebut, tanpa usaha yang terlalu rumit. |