Bir javascript ilişkisel dizisinden nesneleri nasıl kaldırabilirim?

Diyelim ki bu koda sahibim:

var myArray = new Object();
myArray["firstname"] = "Bob";
myArray["lastname"] = "Smith";
myArray["age"] = 25;

Şimdi "lastname"?.... adresini kaldırmak istersem, bunun bir eşdeğeri var mı? myArray["lastname"].remove()?

(Eleman sayısı önemli olduğu ve işleri temiz tutmak istediğim için elemanın gitmesine ihtiyacım var).

Çözüm

Javascript'te "delete" anahtar sözcüğünü kullanın.

delete myArray["lastname"];

DÜZENLE:

Bazı JavaScript motorlarında, delete anahtar sözcüğü derleme / JIT optimizasyonunu geri alacağından performansa zarar verebilir.

http://www.html5rocks.com/en/tutorials/speed/v8/ http://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/

Yorumlar (13)

JavaScript'teki tüm nesneler hashtables/associative arrays olarak uygulanır. Yani, aşağıdakiler eşdeğerdir:

alert(myObj["SomeProperty"]);
alert(myObj.SomeProperty);

Ve daha önce de belirtildiği gibi, iki şekilde kullanabileceğiniz `delete' anahtar sözcüğü aracılığıyla bir nesneden bir özelliği "kaldırırsınız":

delete myObj["SomeProperty"];
delete myObj.SomeProperty;

Umarım ekstra bilgi yardımcı olur...

Yorumlar (3)

Bu sadece nesneyi siler ancak dizi uzunluğunu aynı tutar.

Kaldırmak için şöyle bir şey yapmanız gerekir:

array.splice(index, 1);
Yorumlar (3)