Dan ya, ini adalah cara termudah untuk menyelesaikan tugas. Tidak ada Larik. hapus () fungsi dalam JavaScript yang akan diasumsikan
Selanjutnya, mari kita lihat bagaimana Anda dapat membuat tugas ini lebih mudah dan tidak terlalu berulang. Kemudian mari kita lihat juga contoh yang lebih maju di bagian akhir
Cara Membuatnya Lebih Mudah
Salah satu cara Anda dapat menghapus elemen dari array dengan lebih mudah adalah dengan menyimpan pendekatan di atas ke fungsi terpisah
function removeFirst(arr, target) { var idx = arr.indexOf(target); if (idx > -1) { arr.splice(idx, 1); } return arr; } function removeAll(arr, target) { var i = 0; while (i < arr.length) { if (arr[i] === target) { arr.splice(i, 1); } else { ++i; } } return arr; }Sekarang Anda dapat menggunakan fungsi-fungsi ini dalam proyek Anda sehingga Anda tidak perlu mengulang berulang kali
const numbers = [5, 10, 15]; console.log(removeFirst(numbers, 10)); // output: [5, 15] const numbers = [1, 1, 2, 2]; console.log(removeAll(numbers, 1)) // output: [2, 2]_Sekarang setelah Anda memahami cara menghapus elemen dari array di JavaScript, mari kita lihat pendekatan alternatif
Fungsi filter()
Salah satu cara untuk menghapus elemen tertentu dari array di JavaScript adalah dengan menggunakan fungsi filter()
filter() mengembalikan array baru dengan elemen yang difilter saja
Fungsi filter() bekerja sedemikian rupa sehingga melewati array elemen memeriksa apakah setiap elemen memenuhi suatu kondisi. Kondisi ini diimplementasikan sebagai fungsi yang dipanggil oleh fungsi filter() untuk setiap elemen satu per satu. Jika suatu kondisi terpenuhi, elemen ditambahkan ke larik hasil
Ini sebuah ilustrasi
Mari terapkan filter() yang diilustrasikan di atas
var numbers = [1, 2, 3, 3, 3, 4, 5]; const target = 3; const filteredNumbers = numbers.filter(number => number !== target); console.log(filteredNumbers);Keluaran
[1, 2, 4, 5]Tentu saja, Anda tidak harus berurusan dengan angka saja
Fungsi filter() dapat diterapkan untuk dengan mudah menghapus objek dari array berdasarkan kriteria
Cara Menghapus Objek Tertentu dari Array di JavaScript
Untuk menghapus objek tertentu dari array di JavaScript, gunakan fungsi filter()
Misalnya, katakanlah kita memiliki objek orang dan kita ingin menghapus semua orang yang berusia di bawah 18 tahun
var people = [ {"name":"Alice", "age": 20}, {"name":"Bob", "age": 17}, {"name":"Charlie", "age": 32}, {"name":"David", "age": 16}, ] var adults = people.filter(person => person.age >= 18); console.log(adults);_Keluaran
Potongan kode ini berfungsi sedemikian rupa sehingga fungsi filter()
- Loop melalui daftar objek
- Menerapkan fungsi ke setiap objek orang untuk memeriksa usia objek
- Menempatkan setiap objek orang ke dalam larik hasil jika usianya 18+
- Mengembalikan array baru
Hapus Elemen dari Akhir Array
Untuk menghapus elemen dari akhir array di JavaScript, Anda dapat mengatur panjang array menjadi kurang dari panjang saat ini. Ini berarti Anda membuat larik lebih pendek dari aslinya dengan menyetel mengubah panjangnya
Sebagai contoh
[1, 2]_0Untuk menghapus elemen terakhir dari sebuah array, Anda juga dapat menggunakan Array. metode pop()
Metode ini
- Menghapus elemen terakhir dari array asli. Itu memodifikasi array asli secara langsung alih-alih menghasilkan yang baru
- Mengembalikan elemen terakhir yang dihapus
Contohnya
[1, 2]_1Hapus Elemen dari Awal Array
Untuk menghapus elemen pertama dari sebuah array di JavaScript, gunakan Array. pergeseran() metode
Metode ini
- Menghapus elemen pertama dari array asli. Jadi itu memodifikasi array asli secara langsung
- Mengembalikan elemen pertama yang dihapus
Jika tidak ada elemen dalam array, Array. shift() mengembalikan metode yang tidak terdefinisi
Misalnya, mari kita hapus angka pertama dalam deretan angka
[1, 2]_2Hapus Berbagai Elemen Menggunakan Array. sambatan()
Sebelumnya dalam panduan ini, Anda telah mempelajari cara menggunakan Array. splice() untuk menghapus satu elemen
Namun, terkadang Anda tidak hanya ingin menghapus satu item saja. Sebagai gantinya, Anda ingin menghapus serangkaian item berurutan dalam posisi arbitrer dalam larik
Untuk menghapus berbagai elemen dari array JavaScript, gunakan Array. sambatan() metode
Array. metode splice() membutuhkan dua argumen
- Mulailah. Indeks untuk mulai menghapus item
- n. Jumlah elemen yang akan dihapus
- elemen. Ini adalah argumen opsional. Ini menentukan elemen yang akan ditambahkan ke array
Metode ini mengembalikan elemen yang dihapus sebagai array
Misalnya, mari kita hapus 3 huruf di tengah
Hapus Elemen dari Array Menggunakan Operator 'delete'
Anda juga dapat menggunakan operator hapus bawaan untuk menghapus elemen array
Ini mengasumsikan Anda mengetahui indeks elemen spesifik yang ingin Anda hapus dari array
Namun, perhatikan bahwa ini tidak mengubah ukuran larik asli
Alih-alih menghapus elemen sepenuhnya, operator hapus menandai elemen sebagai tidak terdefinisi
Operator hapus berfungsi sedemikian rupa sehingga menghapus properti dari objek. Jika tidak ada lagi referensi ke properti, secara otomatis dilepaskan dari memori
Operator hapus mengembalikan true jika penghapusan berhasil dan false jika tidak
Tidak seperti yang Anda bayangkan, operator hapus tidak langsung mengosongkan memori. Alih-alih, manajemen memori terjadi saat referensi rusak
Misalnya, mari kita hapus huruf pertama dari array karakter
[1, 2]_4Seperti yang Anda lihat, ukuran array tetap sama. Sekarang elemen pertama hanyalah elemen kosong yang tidak terdefinisi
Hapus Array JavaScript
Untuk menghapus semua elemen array JavaScript, ada beberapa metode yang bisa Anda lakukan
- Atur array sama dengan array kosong. (Ini bisa menjadi masalah, segera Anda pelajari alasannya)
- Setel panjang array ke 0
- Gunakan Larik. splice() metode untuk menghapus semua elemen dari array asli
- Gunakan Larik. pop() metode dengan loop untuk menghapus semua elemen dari array asli
Mari kita cepat melalui opsi ini satu per satu
Mungkin cara termudah adalah menyetel array sama dengan array kosong
Sebagai contoh
[1, 2]_5Namun, ini bisa bermasalah
Jika Anda memiliki referensi ke array ini, mereka tidak akan berubah. Sebaliknya, referensi masih memiliki elemen asli dari array
Jika Anda tidak berhati-hati, ini dapat menyebabkan banyak sakit kepala
Mari kita lihat contohnya
[1, 2]_6Seperti yang Anda lihat, meskipun huruf2 disetel sama dengan huruf1, larik huruf2 tetap tidak berubah setelah menghapus elemen dari larik huruf1
Array asli menunjuk ke array baru di memori. Array yang direferensikan masih menunjuk ke yang asliUntuk mengatasi masalah ini, Anda perlu memodifikasi larik asli alih-alih menugaskan larik baru ke salah satu larik
Salah satu cara untuk melakukannya adalah dengan menyetel panjang larik asli ke 0
Misalnya, mari kita atur panjang dari huruf1 menjadi 0. Ini mengecilkan array untuk memuat 0 elemen. Karena array letters2 menunjuk ke array yang sama di memori, itu juga berubah
[1, 2]_7Pokoknya, satu-satunya cara untuk membersihkan array dan semua array yang mereferensikan array asli adalah dengan langsung memodifikasi array asli
Seperti yang Anda pelajari sebelumnya, Anda dapat memodifikasi larik asli dengan menghapus elemen dengan Array. splice() metode juga
Jadi Anda bisa menghapus semua elemen array dengan metode splice()
[1, 2]_8Tentu saja, Anda juga bisa menggunakan Array. metode pop() hingga panjang array mencapai 0
Contohnya
[1, 2]_9Seperti yang Anda pelajari sebelumnya, metode pop() juga memodifikasi larik asli, sehingga kedua larik diperbarui
Kesimpulan
Hari ini Anda mempelajari apa yang diperlukan untuk menghapus elemen tertentu dalam larik di JavaScript
Singkatnya, tidak ada metode seperti array. hapus(), jadi Anda harus mengimplementasikannya sendiri
Untuk menghapus satu elemen tertentu dari array
- Temukan indeks elemen
- Hapus elemen pada indeks itu
Untuk menghapus semua elemen tertentu dari array
- Ulangi array dari awal hingga akhir
- Untuk setiap iterasi, periksa apakah elemen saat ini adalah elemen target
- Jika ya, hapus target menggunakan fungsi splice()
Sebagai alternatif, Anda dapat menggunakan fungsi filter() untuk menghapus satu/semua elemen tertentu dari larik dalam JavaScript