'Bar' anahtarının bir dizi foo'sundan nasıl kaldırırım ki 'bar' görünmez
for(key in foo){alert(key);}
'Bar' anahtarının bir dizi foo'sundan nasıl kaldırırım ki 'bar' görünmez
for(key in foo){alert(key);}
Yanıtlar:
Bir öğeyi diziden kaldırmayacağı için silme işlevini kullanmayın ; yalnızca tanımsız olarak ayarlar; bu da dizinin uzunluğuna doğru şekilde yansıtılmaz.
Anahtarı biliyorsanız splice yani
myArray.splice(key, 1);
Steven'ın pozisyonundaki biri için böyle bir şey deneyebilirsiniz:
for (var key in myArray) {
if (key == 'bar') {
myArray.splice(key, 1);
}
}
veya
for (var key in myArray) {
if (myArray[key] == 'bar') {
myArray.splice(key, 1);
}
}
for (var key in myArray)Bunun yerine kullanın for (key in myArray)- aksi takdirde keygenel bir değişkendir ve bu döngü içinde aynı soruna sahip bir işlev çağırırsanız, beklenmedik sonuçlar alırsınız.
delete foo[key];
: D
eval. Bir nesnenin / dizinin bir anahtarının / dizininin silinmesi, kullanılmayan daha basit yöntemlerle elde edilebilir eval.
Önemli bir not: JavaScript Dizileri, PHP'den alışkın olabileceğiniz gibi ilişkilendirilebilir diziler değildir. "Dizi anahtarınız" bir dize ise, artık bir dizinin içeriği üzerinde işlem yapmıyorsunuzdur. Diziniz bir nesnedir ve <anahtar adı> adlı üyeye erişmek için köşeli ayraç gösterimi kullanıyorsunuz. Böylece:
var myArray = []; myArray ["bar"] = true; myArray ["foo"] = doğru; uyarısı (myArray.length); // 0 döndürür.
diziye öğe eklemediğiniz için, yalnızca myArray öğesinin çubuğunu ve foo üyelerini değiştirdiniz.
Anahtar adını biliyorsanız sadece bunu yapın:
delete array['key_name']
Ben böyle yapardım
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;
}