Tengo la siguiente situación:¿Ocupa memoria null en javascript?
var large = [a,b,c,d,e,f,g,h,i];
var small = [a2, b2, c2, null, null, null, null, null, null, i2];
, donde todos los elementos de ambas matrices es un objeto.
La pequeña matriz contiene información relacionada con la más grande, pero no todos los elementos de large
requieren un elemento asociado en small
y entonces lo configuré en null
. Sin embargo, todavía necesito mantener los índices iguales para poder hacer cosas como large[16].id + ': ' + small[16].description
. ¿El hecho de que tengo una matriz que es en su mayoría null
en valor resulta en un mayor uso de memoria?
Mi pregunta es si sería mejor hacer algo como small = [a2,b2,c2,i2]
, y establecer índices en propiedades como a2.index = 0; b2.index = 1
y así sucesivamente.
También he encontrado una sugerencia para utilizar indefinido en su lugar y alguien incluso mencionó la implementación de listas vinculadas. No creo que deba implementar una lista vinculada, ya que no agrego ni elimino elementos muy a menudo.
Esta sería mi sugerencia también. –
Tenga en cuenta que el hecho de establecer una propiedad en indefinido no hace que ocupe espacio: una propiedad puede existir y tener un valor explícito de "indefinido", por ejemplo, 'var x = {a: undefined}; alerta (x.a); alerta (x.b); alerta (a en x); alerta (b en x); '. Si desea eliminar una propiedad, use 'delete'. – gsnedders
Gracias por mencionarlo. Quería mencionarlo, y editaré la respuesta para incluirla. – codelahoma