Estoy intentando crear una matriz de 3 matrices con 10 elementos en cada matriz. Cada elemento debe ser un número aleatorio entre 1 y 10. Quería usar una sola función para generar cada una de las matrices y usé esto:
var array1 = []; var array2 = []; var array3 = []; var tempName; function fcnArrayGenerate(){ let i = 1; while (i < 4){ tempName = "array" + i; let j = 0; while (j < 10){ tempName.push((Math.floor(Math.random() * 10) + 1)); j++; } i++; } console.log(array1); console.log(array2); console.log(array3); }Sin embargo, cuando ejecuto la función, recibo un error que indica que "tempName.push no es una función". Cualquier ayuda sobre cómo corregir esto sería apreciada. Gracias.
En lugar de usar tres variables para tres arreglos diferentes, puede usar un solo arreglo multidimensional para almacenar esos tres arreglos.
let array = [[], [], []]; function fcnArrayGenerate() { let i = 0; while (i <= 2) { let j = 0; while (j < 10) { array[i].push(Math.floor(Math.random() * 10) + 1); j++; } i++; } } // call the function fcnArrayGenerate(); // now print the arrays as tables console.table(array); console.table(array[0]); console.table(array[1]); console.table(array[2]); Nota: console.table() le permite imprimir matrices y objetos en la consola en forma tabular.
Si desea ingresar a tempName , primero debe inicializarlo con una matriz vacía. Ahora mismo está indefinido. Por lo tanto, está viendo el error ya que no puede enviar algo a undefined
Haz esto: var tempName = []
Para hacer que los nombres de las variables sean incremental , puede pasarlos como objects .
var data = { array1: [], array2: [], array3: [] } function fcnArrayGenerate(){ let i = 1; while (i < 4){ let j = 0; while (j < 10){ data['array' + i].push((Math.floor(Math.random() * 10) + 1)); j++; } i++; } console.log(data.array1); console.log(data.array2); console.log(data.array3); } fcnArrayGenerate();