¿Cómo elimino objetos de un array asociativo en javascript?

Supongamos que tengo este código:

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

Ahora bien, si quisiera eliminar "lastname"?.... ¿hay algún equivalente de myArray["lastname"].remove()?

(Necesito que el elemento desaparezca porque el número de elementos es importante y quiero mantener las cosas limpias).

Solución

Utilice la palabra clave "delete" en Javascript.

delete myArray["lastname"];

EDITAR:

En algunos motores de JavaScript, la palabra clave "delete" podría perjudicar el rendimiento, ya que deshará la optimización de compilación / JIT.

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

Comentarios (13)

Todos los objetos en JavaScript se implementan como hashtables/arreglos asociativos. Por lo tanto, los siguientes son los equivalentes:

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

Y, como ya se ha indicado, se "elimina" una propiedad de un objeto a través de la palabra clave delete, que se puede utilizar de dos maneras:

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

Espero que la información extra ayude...

Comentarios (3)

Esto sólo elimina el objeto pero mantiene la misma longitud del array.

Para eliminar necesitas hacer algo como:

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