Nº
Lo matrices de JavaScript son y no se está determinada por la especificación del lenguaje concretamente en la sección 15.4. Array
se define en términos de las operaciones que proporciona, no los detalles de implementación del diseño de memoria de cualquier estructura de datos particular.
¿Se podría implementar Array
en la parte superior de una lista vinculada? Sí. Esto puede hacer que ciertas operaciones sean más rápidas, como shift
y unshift
, pero también se accede con frecuencia al índice Array
, que no es eficiente con las listas enlazadas.
También es posible obtener lo mejor de ambos mundos sin listas vinculadas. Las estructuras de datos de memoria contínuas, como circular queues, tienen una inserción/eliminación eficiente desde la parte frontal y un acceso aleatorio eficiente.
En la práctica, la mayoría de los intérpretes optimizan las matrices densas mediante el uso de una estructura de datos basada en una matriz redimensionable o reasignable similar a C++ vector
o Java ArrayList
.
En idiomas con matrices de tamaño variable, la memoria real asignada normalmente se duplica cada vez que tiene que crecer. Como resultado, no vas a reasignar constantemente la memoria en ningún idioma. –
Gracias chicos, eso funciona bien para mí. Solo quería asegurarme de que no estaba cometiendo un error de javascript. –