JavaScript - Problema con array bidimensional

 
Vista:

Problema con array bidimensional

Publicado por Mayte (2 intervenciones) el 08/12/2011 14:59:15
Hola muy buenas a todos y gracias de antemano por interesaros en este tema. Estoy haciendo un ejercicio en el que tengo que crear una tabla de forma dinámica pidiendo el número de filas y número de columnas, además tengo que pedir un valor para cada celda a través del prompt. Quiero guardad esos valores en un array bidimensional que quede como en la tabla y lo que hago es a la hora de introducir el valor en la tabla lo introduzco también en el array. El problema viene cuando pido mas de una fila, si pido dos filas y dos columnas, que debería pedir 4 valores, me pide 3 valores y cuando quiero mostrar los valores me muestra 2 además no me muestra la tabla en la página. Si comento la parte en la que guardo el valor en el array no pasa nada de esto.
Por cierto, si uso herramientas para desarrolladores en Google Chrome me sale el error "cannot set property '0' of undefined" justo debajo de la parte en la que guardo el valor en el array.
Espero haberme explicado lo mejor posible y muchas gracias de antemano. Un saludo a todos ;)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<html>
 
	<head>
		<script style="text/javascript">
		var fila;
		var columna;
		var numero;
		var arrayTabla= new Array(numf);
		var numf; //numero filas
		var numc; //numero columnas
		function generar(){
		    //cojo los datos del id que solicito
			fila=document.getElementById('filas');
			//paso el dato a entero
			numf=parseInt(fila.value);
 
			columna=document.getElementById('columnas');
			numc=parseInt(columna.value);
			//creo el array bidimensional para guardar los datos de la tabla tal y como está en ésta
			for (i=0;i<arrayTabla.length;i++) arrayTabla[i]= new Array(numc);
			//creo la tabla
			tabla=document.createElement("table");
			tabla.border=1;
			tabla.id="t";// añado id a la tabla
 
 
			//creamos las celdas de la tabla e introducimos los datos en la celda y en el array bidimensional
			for (var i=0;i<numf;i++){
			//recorremos el array de filas creándolas con tr
				var fila1=document.createElement("tr");
				//lo mismo con td
				for (var j=0;j<numc;j++){
					//lo mismo con td
					var columna1=document.createElement("td");//creamos una celda
					numero=prompt("Intro valor: ");
					arrayTabla[i][j]=numero; //introduzco el valor en el array
					//creo un texto para dentro de cada td y le pongo el valor de número
					var texto=document.createTextNode(numero);
 
					columna1.appendChild(texto);//enlazamos hijos con padres
					fila1.appendChild(columna1);
				}
				tabla.appendChild(fila1);
 
			}
			bodyP.appendChild(tabla);
 
		}
 
 
		function mostrar(){ //funcion para mostrar los valores de cada celda
 
			for(i=0;i<arrayTabla.length;i++){
 
				for (j=0;j<arrayTabla[i].length;j++){
 
					alert("valor celda: "+arrayTabla[i][j]);
 
				}
			}
		}
 
	</script>
	</head>
	<body id="bodyP">
 
		Filas<input type="text" id="filas" value=""></br>
		Columnas<input type="text" id="columnas" value=""></br>
		<input type="Button" value="generar" onclick="generar()">
 
		<input type="Button" value="mostrar" onclick="mostrar()"> </br>
 
 
	</body>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder