Cómo crear una matriz (array) de longitud N sin usar bucles (ciclos) en JavaScript

Afortunadamente para muchos desarrolladores, las matrices en JavaScript no necesitan tener una longitud específica a diferencia de otros lenguajes, como C ++, donde es necesario especificar la longitud, por ejemplo, una matriz de 5 elementos en C ++:

#include <iostream>

using namespace std;

int main() {
    int arr[5] = {4, 1, 8, 2, 9};
    int len = sizeof(arr)/sizeof(arr[0]);
    cout << "La longitud de la matriz es: " << len;
    return 0;
}

En JavaScript, esto es bastante flexible de una manera más simple:

let arr = [4, 1, 8 , 2, 9];

Puedes eliminar o agregar elementos más fácilmente, en comparación con el lenguaje de alto nivel mencionado. Entonces, si desea una matriz de N elementos en JavaScript, solo necesita empujar el nuevo elemento a la matriz y eso es todo:

let arr = [];

// Número de elementos de la matriz
const N = 100;

for(let i = 0;i < N;i++){
    arr.push(i);
}

// Matriz con 100 elementos (0 .. 99)
console.log(arr);

¡Fácil para un caso normal! Sin embargo, si estudias, es posible que algún día recibas una tarea que solicite la creación de una matriz de N elementos sin utilizar ningún tipo de bucle (se vuelve difícil, ¿no?). No se preocupe, ¡lo tenemos cubierto! En este artículo, explicaré algunas de las posibles formas de crear un elemento con una longitud definida sin usar bucles en JavaScript.

Nota: algunas de las soluciones crearán matrices vacías de una longitud definida, mientras que otras contendrán un elemento (un número) en cada índice. Utilice las soluciones que mejor se adapten a sus necesidades.

1. Usando el constructor Array

El uso de la sintaxis del constructor de la matriz en JavaScript siempre se ha conocido como algo ambiguo, ya que puede construir una matriz a partir de elementos, proporcionando múltiples argumentos al constructor de la matriz o construir una matriz vacía con una longitud predefinida si proporciona un solo argumento. Este es el primer caso, que crea una matriz de longitud 50:

let myArray = new Array(50);

console.log(myArray);

En la consola, generará algo como:

Array Constructor JavaScript Array

Recuerde que los constructores de matrices no deben usarse si los va a manipular más adelante, ya que pueden generar un comportamiento confuso.

2. Creando una matriz con el operador de propagación

Esta solución creará una matriz con elementos, específicamente los valores numéricos para cada elemento en la matriz, ya que el método keys () devuelve un nuevo objeto Iterador de matriz que contiene las claves para cada índice en la matriz:

let myArray = [ ...Array(50).keys() ];

// Genera una matriz con valores: [0, 1, 2, 3 ... 49]
console.log(myArray);

Si desea comenzar desde 1 en lugar de 0, aumente el número de elementos en uno y cambie el primer elemento:

let myArray = [ ...Array(51).keys() ];

myArray.shift();

// Genera una matriz con valores: [1, 2, 3, 4 ... 50]
console.log(myArray);

3. Usando array.fill

El método array.fill de JavaScript cambia todos los elementos de una matriz a un valor estático, desde un índice de inicio (predeterminado 0) a un índice final (predeterminado establecido en array.length) y devuelve la matriz modificada. Luego, usando map estableceremos cada elemento en el índice:

let myArray = Array(50).fill().map((v,i)=>i);

// Contiene una matriz con 50 elementos [0, 1, 2, 3 ... 49]
console.log(myArray);

Si desea comenzar desde 1 en lugar de 0, aumente el número de elementos en uno y cambie el primer elemento:

let myArray = Array(51).fill().map((v,i)=>i);

myArray.shift();

// Contiene una matriz con 50 elementos [1, 2, 3 ... 50]
console.log(myArray);

Que te diviertas ❤️!

Esto podria interesarte

Conviertete en un programador más sociable