Con una matriz de JavaScript, puedo restablecer a un estado vacío con una sola asignación:¿Cómo borrar rápidamente un objeto de JavaScript?
array.length = 0;
Esto hace que la matriz "parecen" vacíos y listos para volver a utilizar, y por lo que yo entiendo es una sola " operación "- es decir, tiempo constante.
¿Hay alguna manera similar de borrar un objeto JS? Sé que puedo iterar sus campos eliminándolos:
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
pero esto tiene una complejidad lineal.
que puede también acaba de lanzar el objeto de distancia y crear una nueva:
obj = {};
Pero "promiscua" creación de nuevos objetos conduce a problemas con la recolección de elementos en IE6. (As described here)
"array.length == 0 ... es una sola 'operación' - es decir, tiempo constante" - Lo dudo. – Miles
No creo que borre ninguno de los contenidos, simplemente hace que cosas como push() funcionen como si la matriz estuviera vacía. ¿Tiene alguna referencia de que lo opuesto sea cierto? – levik
@derobert: Eso es un poco presuntuoso. El problema de la Colección de basura IE6 está bien documentado. – levik