
En la mayoría de los casos usamos arrays cuando trabajamos con Javascript o con cualquier otro lenguaje, ya que nos permiten una mejor manipulación y agrupación de ciertos conjuntos de datos de características similares.
Entre todas las posibles operaciones que podemos realizar sobre un array, una de las más comunes es la de borrado o vaciado, la cual hará que el array que teníamos se convierta en un array vacío.
Cómo vaciar o borrar un array en Javascript y sus implicaciones
Para realizar el vaciado o borrado de un array podemos hacer uso de dos implementaciones o soluciones, las cuales vamos a ver a continuación. Supongamos que tenemos un array en una variable miArray con el siguiente contenido:
1 | var miArray = [1, 2, 3, 4, 5]; |
Podemos realizar el vaciado del array mediante la asignación de un array vacío a la variable en cuestión:
1 | miArray = []; |
Por lo que la variable miArray ahora estará apuntando a un array vacío. Es decir, no se trata del array anterior vacío, sino que la variable está apuntando a una nueva posición de memoria. Para entenderlo, supongamos las variables siguientes:
1 2 3 | var miArray = [1, 2, 3, 4, 5]; var miOtroArray = miArray; |
Si ahora, realizamos el borrado del primer array tal como hemos visto anteriormente:
1 2 3 4 5 | miArray = []; //Los valores de las variables anteriores son: //miArray = []; //miOtroArray = [1, 2, 3, 4 ,5]; |
la variable miOtroArray seguirá apuntando a la posición de memoria donde se aloja el array que tenía anteriormente asignado la variable miArray, ya que con esta solución, lo único que hacemos es asignar a dicha variable un nuevo array vacío en otra posición de memoria.
Para evitar esto, otro método de vaciado o borrado de un array en Javascript es mediante la propiedad length, así, podemos vaciar nuestro primer array de la siguiente forma:
1 2 3 4 5 | miArray.length = 0; //No reasignamos a un nuevo valor, sino que reducimos la longitud del actual. //Los valores de las variables anteriores son: //miArray = []; //miOtroArray = []; |
De esta forma, estamos haciendo que la longitud de nuestro array actual sea cero, por lo que lo estamos vaciando, y la variable sigue apuntando al mismo array, por lo que las otras posibles variables y/o punteros, que apuntaban a la misma, tendrán el mismo valor que esta. Así nos evitamos cualquier problema con variables y punteros que pueda ocasionar una reasignación a un nuevo array como en el primer caso.
Además, esta última solución, es una solución mejor en cuanto a rendimiento ya que realmente libera la memoria asignada a dicho array. Si usamos la primera solución, además de asignar memoria para el nuevo array vacío, no liberamos la memoria asignada al array anterior, en caso de que alguna otra variable o puntero esté apuntando a la misma.
