Javascript de matriz multidimensional con índice que no comienza desde 0
Frecuentes
Visto 107 veces
0
Necesito llenar una matriz multidimensional pero no desde el elemento cero sino desde el tercero, pero obtuve errores al intentar hacer eso:
el código es:
var matrix = [ [] ];
matrix[3][0] = 10;
print(matrix[3][0]);
luego obtuve el error: "No se puede establecer el valor de la propiedad '0': el objeto es nulo o indefinido"
pero cuando haces lo mismo desde el elemento cero, entonces funciona:
var matrix = [ [] ];
matrix[0][0] = 10;
print(matrix[0][0]);
No hay errores aquí, ¿por qué?
1 Respuestas
3
Cuando creas tu matriz inicial:
var matrix = [ [] ];
tienes una matriz con una sola matriz de cero elementos. En ese punto, matrix[3]
is undefined
.
Puede inicializar su matriz de varias maneras, dependiendo de la naturaleza de su problema. Aquí hay uno:
var matrix = [];
for (var i = 0; i < 10; ++i)
matrix[i] = [];
Ahora tienes 10 filas, cada una vacía.
Respondido el 03 de diciembre de 13 a las 14:12
Bueno, tengo una pregunta más. En caso de que necesite usar más de un elemento de matriz, entonces tengo que inicializarlos todos en el ciclo o en algún lugar del código, ¿iniciar cada elemento de matriz como matriz? - user1337
@ user2968398 No estoy seguro de entenderlo completamente, pero sí, antes de usar un elemento de cualquier matriz as una matriz, debe inicializarse. No es necesario que lo haga antes de tiempo; puede verificarlo antes de intentar usarlo e inicializarlo en ese momento. - Puntiagudo
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript or haz tu propia pregunta.
¿Por qué quieres hacer eso en primer lugar? - Shryme
Gracias
matrix[3]
no existe. - Andytienes que inicializar la matriz desde el índice cero. no puede acceder directamente al tercer índice antes de inicializar. - Yagnesh Agola
var matrix = []; matrix[3] = [10]; print(matrix[3][0]);
JS no tiene matrices multidimensionales en el sentido en que, por ejemplo, Pascal las tiene: JS tiene matrices de matrices. - nnnnnn