Saya sudah:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
Saya ingin dapat melakukan sesuatu seperti:
array.remove("B");
tetapi tidak ada fungsi hapus. Bagaimana saya mencapai ini?
javascript
arrays
Rolando
sumber
sumber
.indexOf()
dan.splice()
harus melakukan trik. Atau mungkin, sebagai alternatif.filter()
,.Jawaban:
Saya sebenarnya memperbarui utas ini dengan solusi 1-baris yang lebih baru:
Idenya pada dasarnya adalah untuk memfilter array dengan memilih semua elemen yang berbeda untuk elemen yang ingin Anda hapus.
Catatan: akan menghapus semua kemunculan.
EDIT:
Jika Anda ingin menghapus hanya kejadian pertama:
sumber
Ulangi daftar dalam urutan terbalik, dan gunakan
.splice
metode ini.Urutan terbalik penting ketika semua kemunculan istilah pencarian harus dihapus. Jika tidak, penghitung akan meningkat, dan Anda akan melewatkan elemen.
Ketika hanya kejadian pertama yang harus dihapus, yang berikut ini juga akan berfungsi:
sumber
0
tidak secara otomatis lebih cepat seperti di, katakanlah, C. Selama Anda cache batas, tentu saja, yang akan menyulitkan hal-hal jika Anda terus setelah pertandingan pertama (tetapi tidak jika Anda berhenti di atasnya).Daftar One Liners
Mari kita selesaikan masalah ini untuk array ini:
1. Hapus hanya yang pertama: Gunakan Jika Anda yakin item itu ada
2. Hapus hanya yang terakhir: Gunakan Jika Anda yakin item itu ada
3. Hapus semua kejadian:
sumber
DEMO
Anda harus menemukan lokasi dengan apa yang Anda cari
.indexOf()
kemudian menghapusnya.splice()
Ini akan menangani semua kejadian.
sumber
.indexOf()
Anda dapat menambahkan ini ke file javascript Anda.Uncaught ReferenceError: array is not defined
. Apa yang salah?.indexOf()
sedikit saja. Jika Anda meneruskanfound
argumen kedua ke.indexOf()
panggilan dalam while-loop , elemen-elemen dalam array yang sudah diperiksa dan berakhir tidak sama tidak diperiksa lagi:found = arr.indexOf(what, found);
Secara sederhana
sumber
-1
jika tidak ada yang ditemukan dan whoops, splice akan menghapus 1 elemen dari akhir arraySolusi sederhana (ES6)
Jika Anda tidak memiliki elemen duplikat
Demo online (biola)
sumber
Anda harus menulis sendiri hapus. Anda dapat mengulang array, ambil indeks item yang ingin Anda hapus, dan gunakan
splice
untuk menghapusnya.Atau, Anda dapat membuat array baru, mengulang array saat ini, dan jika objek saat ini tidak cocok dengan yang ingin Anda hapus, letakkan di array baru.
sumber
menggunakan:
Ini menghapus satu item dari array, mulai dari indeks 2 (item ke-3)
sumber
array.splice(2,1)
yang menghapus 1 item pada indeks 2 dari array. periksa https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice untuk detail lebih lanjutatau Anda dapat menggunakan:
RubahArray akan berisi tanpa nilai 'B'
sumber
gunakan array.splice
Sumber: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
sumber
array
dansplice
harus berupa titik.