How to return an array in JavaScript?

Arrays en JS: El Arma Secreta del Game Dev

22/02/2022

Valoración: 4.52 (15158 votos)

¿Alguna vez te has preguntado cómo un juego recuerda todos los objetos que llevas en tu mochila? ¿O cómo gestiona una horda de enemigos que te atacan simultáneamente? Detrás de esa magia se esconde una de las estructuras de datos más fundamentales y poderosas de la programación: el array. Si sueñas con crear tus propios videojuegos, dominar los arrays en JavaScript no es una opción, es tu primer gran paso en la senda del desarrollador. En este artículo, desmitificaremos los arrays y te enseñaremos a utilizarlos como un verdadero profesional, con ejemplos directamente aplicados al mundo del desarrollo de videojuegos.

How to create an array in JavaScript?
In this example: First, define the even object with the [System.iterator] that returns even numbers from 0 to 10. Then, use the Array.from() method to create a new array of even numbers from the even object. Use the JavaScript Array.from() method to create an array from an array-like or iterable object.
Índice de Contenido

¿Qué es un Array y Por Qué Debería Importarme?

Imagina un array como un cofre de botín o un inventario. Es un contenedor especial que puede guardar una colección de elementos en un orden específico. Estos elementos pueden ser cualquier cosa: los nombres de las armas que has recogido, la cantidad de vida de cada enemigo en pantalla, las coordenadas de los tesoros escondidos en un mapa, o incluso la secuencia de diálogos de un personaje no jugador (NPC).

La belleza de un array reside en su organización. Cada elemento dentro del cofre tiene una posición numerada, llamada índice. Esto nos permite acceder, modificar o eliminar cualquier objeto de forma rápida y eficiente. Sin los arrays, tendríamos que crear una variable separada para cada ítem, cada enemigo o cada proyectil. ¡Sería un caos absoluto! Por ejemplo, en lugar de `espada`, `escudo`, `pocion1`, `pocion2`, simplemente tenemos un solo `inventario` que lo contiene todo.

La Creación de tu Primer Arsenal: Formas de Declarar un Array

En JavaScript, hay dos formas principales de forjar un nuevo array. Aunque ambas logran el mismo objetivo, la comunidad de desarrolladores tiene una clara favorita por su simplicidad y eficiencia.

1. La Notación Literal (La Vía del Maestro)

Esta es la forma más común, directa y recomendada. Simplemente usas corchetes `[]` para encerrar tu lista de elementos, separados por comas.

// Creando un inventario con algunos ítems iniciales let inventario = ["Espada de Hierro", "Poción de Salud", "Mapa del Tesoro", "Manzana"]; // Creando una lista de puntos de vida de enemigos let vidaEnemigos = [100, 50, 120, 80]; // Un array puede empezar vacío, listo para ser llenado let botinRecogido = [];

Esta sintaxis es limpia, fácil de leer y es la que verás en el 99% de los códigos profesionales. Es tu pan de cada día como desarrollador de juegos.

2. El Constructor de Array (La Vía Antigua)

También puedes crear un array usando la palabra clave `new Array()`. Funciona, pero generalmente se considera más verboso e innecesario para la mayoría de los casos.

// Usando el constructor para crear el mismo inventario let inventarioConConstructor = new Array("Espada de Hierro", "Poción de Salud", "Mapa del Tesoro", "Manzana");

Ten cuidado: si le pasas un solo número al constructor, no creará un array con ese número, sino que creará un array vacío con esa cantidad de espacios predefinidos. Esto puede llevar a confusiones, por lo que te recomendamos adherirte siempre a la notación literal `[]`.

Accediendo a tu Equipamiento: Índices y Posiciones

Una vez que tienes tu array lleno de tesoros, necesitas una forma de sacar un ítem específico. Aquí es donde entra en juego el índice. Un detalle crucial que debes grabar en tu mente: los arrays en JavaScript empiezan a contar desde el 0. El primer elemento está en el índice 0, el segundo en el índice 1, y así sucesivamente.

let inventario = ["Espada Maestra", "Escudo Hyliano", "Arco del Viajero"]; // Para obtener el primer ítem (la espada) let primerItem = inventario[0]; // "Espada Maestra" // Para obtener el tercer ítem (el arco) let tercerItem = inventario[2]; // "Arco del Viajero" // También podemos modificar un ítem existente // El jugador mejora su arco inventario[2] = "Arco de Luz"; // Ahora el inventario es: ["Espada Maestra", "Escudo Hyliano", "Arco de Luz"]

Comprender el índice base 0 es fundamental. Un error común de los principiantes es intentar acceder al último elemento usando la longitud total del array, lo que causará un error. Para acceder al último elemento de forma segura, siempre usarás `inventario[inventario.length - 1]`.

Gestionando el Botín: Métodos Esenciales para Arrays

JavaScript nos proporciona una serie de herramientas integradas, llamadas métodos, que nos permiten manipular nuestros arrays de formas muy poderosas. Estos son tus hechizos y habilidades para gestionar datos.

Tabla Comparativa de Métodos de Array para Juegos

MétodoDescripciónEjemplo de Uso en un Juego
.push()Agrega uno o más elementos al final del array.inventario.push("Llave Antigua"); // El jugador recoge una llave.
.pop()Elimina y devuelve el último elemento del array.let itemUsado = inventario.pop(); // El jugador usa el último ítem que recogió.
.splice()Cambia el contenido de un array eliminando, reemplazando o agregando elementos en cualquier índice.inventario.splice(1, 1); // Usa y elimina la "Poción de Salud" que estaba en el segundo lugar (índice 1).
.lengthNo es un método, sino una propiedad que devuelve el número total de elementos.if (inventario.length >= 10) { alert("¡Inventario lleno!"); }
.indexOf()Busca un elemento y devuelve su primer índice. Si no lo encuentra, devuelve -1.if (inventario.indexOf("Gema del Poder") !== -1) { abrirPuertaSecreta(); }
.forEach()Ejecuta una función para cada elemento del array.enemigos.forEach(enemigo => enemigo.atacar()); // Hace que todos los enemigos en la lista ataquen.

Recorriendo el Campo de Batalla: Iterando sobre Arrays

A menudo, necesitarás realizar una acción en cada elemento de un array. Por ejemplo, dibujar a cada enemigo en la pantalla, actualizar la posición de cada bala o mostrar cada ítem del inventario en la interfaz de usuario. Este proceso se llama iteración.

El Bucle `for` Clásico

La forma tradicional de recorrer un array es con un bucle `for`. Te da un control total sobre el índice.

let enemigos = ["Goblin", "Orco", "Esqueleto", "Dragón"]; for (let i = 0; i < enemigos.length; i++) { console.log("¡Un " + enemigos[i] + " aparece!"); // Aquí iría la lógica para dibujar al enemigo en la posición i }

El Elegante `forEach`

Una forma más moderna y legible es usar el método `.forEach()`. Es ideal cuando no necesitas preocuparte por el índice y solo quieres hacer algo con cada elemento.

let proyectiles = [proyectil1, proyectil2, proyectil3]; // Para cada proyectil en el array, llama a su función de actualizar posición proyectiles.forEach(function(proyectil) { proyectil.actualizarPosicion(); }); // O usando la sintaxis de función de flecha (más corta) proyectiles.forEach(proyectil => proyectil.actualizarPosicion());

Arrays Multidimensionales: Creando el Mapa del Mundo

¿Y si queremos representar algo más complejo, como un tablero de ajedrez o el mapa de un nivel? Podemos hacerlo con arrays dentro de otros arrays. A esto se le llama un array multidimensional.

Imagina un mapa de 3x3 donde `0` es pasto, `1` es un árbol y `2` es agua.

let mapa = [ [0, 1, 2], // Fila 0 [0, 0, 1], // Fila 1 [1, 0, 0] // Fila 2 ]; // Para saber qué hay en la fila 1, columna 2 (un árbol) let tile = mapa[1][2]; // Devuelve 1 // Para cambiar el pasto en la esquina inferior derecha por agua mapa[2][2] = 2;

Esta estructura es la base para todos los juegos basados en cuadrículas, desde el Buscaminas hasta los RPGs tácticos como Final Fantasy Tactics.

Preguntas Frecuentes (FAQ) para el Héroe Desarrollador

  • ¿Cuál es la diferencia real entre `[]` y `new Array()`?
    En la práctica, casi ninguna para la creación básica. Sin embargo, `[]` es más rápido, más corto y evita un comportamiento confuso de `new Array()` cuando se le pasa un solo número. La regla de oro es: usa siempre `[]`.
  • ¿Puedo guardar diferentes tipos de datos en un mismo array?
    ¡Sí! JavaScript es muy flexible. Puedes tener un array como `let jugador = ["Aragorn", 85, true, {arma: "Andúril"}];` (string, número, booleano, objeto). Aunque es posible, para agrupar datos de una sola entidad (como un jugador), es mucho más recomendable usar un objeto.
  • ¿Cómo sé cuántos ítems hay en mi inventario?
    Usa la propiedad `.length`. `let numeroDeItems = inventario.length;`. Es tu contador de confianza.
  • ¿Qué pasa si intento acceder a un índice que no existe?
    Si intentas acceder a `inventario[99]` y tu inventario solo tiene 10 ítems, JavaScript no te dará un error que rompa el juego. En su lugar, te devolverá el valor `undefined`. Es importante controlar esto en tu código para evitar comportamientos inesperados.

Dominar los arrays es como aprender a usar la espada para un guerrero. Es una habilidad fundamental que utilizarás constantemente en tu viaje como desarrollador de videojuegos. Desde gestionar un simple inventario hasta orquestar complejas mecánicas de juego, los arrays serán tu herramienta más fiable. ¡Ahora ve y empieza a llenar tus propios cofres de botín!

Si quieres conocer otros artículos parecidos a Arrays en JS: El Arma Secreta del Game Dev puedes visitar la categoría Juegos.

Subir