Bagaimana cara menghapus 'bilah' kunci dari array foo sehingga 'bilah' tidak akan muncul
for(key in foo){alert(key);}
Bagaimana cara menghapus 'bilah' kunci dari array foo sehingga 'bilah' tidak akan muncul
for(key in foo){alert(key);}
Jawaban:
Jangan gunakan delete karena itu tidak akan menghapus elemen dari array, itu hanya akan mengaturnya sebagai tidak terdefinisi, yang kemudian tidak akan tercermin dengan benar dalam panjang array.
Jika Anda tahu kuncinya, Anda harus menggunakan sambatan yaitu
myArray.splice(key, 1);
Untuk seseorang di posisi Steven, Anda dapat mencoba sesuatu seperti ini:
for (var key in myArray) {
if (key == 'bar') {
myArray.splice(key, 1);
}
}
atau
for (var key in myArray) {
if (myArray[key] == 'bar') {
myArray.splice(key, 1);
}
}
for (var key in myArray)alih-alih for (key in myArray)- keyadalah variabel global dan jika Anda memanggil fungsi di dalam loop yang memiliki masalah yang sama, Anda akan mendapatkan hasil yang tidak terduga.
delete foo[key];
: D
eval. Menghapus kunci / indeks objek / array dapat dicapai dengan metode yang lebih sederhana tidak menggunakan eval.
Catatan penting: Array JavaScript bukan array asosiatif seperti yang mungkin Anda gunakan dari PHP. Jika "kunci array" Anda adalah string, Anda tidak lagi beroperasi pada konten array. Array Anda adalah objek, dan Anda menggunakan notasi braket untuk mengakses anggota yang bernama <key name>. Jadi:
var myArray = []; myArray ["bar"] = true; myArray ["foo"] = true; lansiran (myArray.length); // mengembalikan 0.
karena Anda belum menambahkan elemen ke array, Anda hanya memodifikasi anggota bar dan foo myArray.
Jika Anda tahu nama kuncinya, lakukan seperti ini:
delete array['key_name']
Inilah yang akan saya lakukan
myArray.splice( myArray.indexOf('bar') , 1)
http://www.internetdoc.info/javascript-function/remove-key-from-array.htm
removeKey(arrayName,key);
function removeKey(arrayName,key)
{
var x;
var tmpArray = new Array();
for(x in arrayName)
{
if(x!=key) { tmpArray[x] = arrayName[x]; }
}
return tmpArray;
}