Foros del Web » Programando para Internet » Javascript »

hola me presento y haber si me podeis ayudar

Estas en el tema de hola me presento y haber si me podeis ayudar en el foro de Javascript en Foros del Web. Buenas comunidad espero que me echeis una mano, estoy estudiando un modulo de javascript y tengo que hacer un ejercicio,esta casi acabado pero me queda ...
  #1 (permalink)  
Antiguo 15/01/2014, 08:04
 
Fecha de Ingreso: enero-2014
Mensajes: 2
Antigüedad: 10 años, 3 meses
Puntos: 0
hola me presento y haber si me podeis ayudar

Buenas comunidad espero que me echeis una mano, estoy estudiando un modulo de javascript y tengo que hacer un ejercicio,esta casi acabado pero me queda el final , la historia es que tengo un campo de fútbol con gradas y espectadores, el problema lo tengo con la función agregar gradaYasiento, tengo que pasarle por parámetros las gradas que quiero añadir y los asientos que tiene cada grada. Luego tengo otra función que es añadir el socio que tengo que pasar por parámetros el nombre del socio, la grada y asiento que le corresponde,
Tal como lo tengo el problema es que cuando quiero añadir gradaYasiento me machaca el array donde lo guardo. Sera problema de la declaración del mismo.

<!DOCTYPE html>
<html>
</head>
<title></title>
</head>
<body>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">

var i=0;//variable global indice del array gradas
var j=0;
//funcion constructor
function CampoFutbol(nombre,ciudad,capacidad){

this.nombre=nombre;
this.ciudad=ciudad;
this.capacidad=capacidad;
//array donde almacenamos gradas,asientos y nombre
this.gradas= Array();
//variables para modificar nombre,ciudad y capacidad campo futbol
this.nuevoNombre="";
this.nuevaCiudad="";
this.nuevaCapacidad=0;
//variables imprimir nombre,ciudad y capacidad campo futbol
this.imprimeNombre=nombre;
this.imprimeCiudad=ciudad;
this.imprimeCapacidad=capacidad;
//funcion agregar gradas y asientos
this.agregarGradasYAsisentos=this.gradas;
//funcion agregar socio
this.agregarSocio=agregarSocio;
//funcion imprimir
this.imprimirSocio=imprimirSocio;

//metodo modificar nombre
this.nuevoNombre=function(nombre)
{

this.nombre=nombre;
}

//metodo modificar cidudad
this.nuevaCiudad=function(ciudad)
{

this.ciudad=ciudad;
}

//metodo modificar capacidad
this.nuevaCapacidad=function(capacidad)
{

this.capacidad=capacidad;
}

//funcion imprimir nombre

this.imprimeNombre = function(){

return this.nombre;

}

//funcion imprimir ciudad

this.imprimeCiudad= function(){

return this.ciudad;
}

//funcion imprimir capacidad

this.imprimeCapacidad=function(){

return this.capacidad;
}

this.agregarGradasYAsisentos=function(grada,asient o)

{

var pos = this.gradas.length + grada;
grada = pos;
this.gradas = Array(grada);
for ( grada =0; grada < this.gradas.length; grada++) {
var asientos = Array(asiento);
this.gradas[grada]=asientos;
document.write("<br>");

for ( asiento = 0; asiento < this.gradas[grada].length; asiento++) {
this.gradas[grada][asiento]="vacio";
document.write(this.gradas[grada][asiento] + "<br>");
};

};
document.write("<br>");

return this.gradas;

}
/*
this.numGradas = numGradas;
this.numAsientos = numAsientos;
this.gradas = new Array(numAsientos);
for (var i=0; i < numGradas; i++) {
this.gradas[i]=new Array(this.numAsientos);


}
*/


}

//funcion agregar socio

function agregarSocio(numGrada,numAsiento,socio)
{

this.gradas[numGrada][numAsiento]=socio;

document.write(socio + " es ahora socio del asiento " + numAsiento + " de la grada " + (numGrada + 1) + "<br><br>");



}


//imprimir socios

function imprimirSocio()
{

//var posI = this.gradas.length;
//var posJ =this.gradas.length;
for (var i = 0; i < this.gradas.length; i++) {
for (var j = 0; j < this.gradas[i].length; j++) {
document.write("Socio del asiento " + j + " de la grada " + i + " : " + this.gradas[i][j] + "<br>");



}
};

}


//instanciamos un campo de futbol
var campo1 = new CampoFutbol("Los Carmenes","Granada",22524);
var campo2 = new CampoFutbol("La Rosaleda","Almeria",30044);
var campo3 = new CampoFutbol("Benito Villamarin","Sevilla",56000);
//modificamos nombre campo1
campo1.nuevoNombre("Nuevo Estadio Los Carmenes");
//modificamos la ciudad del campo 2
campo2.nuevaCiudad("Malaga");
//modificamos la capacidad del campo3
campo3.nuevaCapacidad(56500);
//imprimimos nombre campo1
document.write("El campo1 se llama " + campo1.imprimeNombre() + "<br>");
//imprimimos la ciudad del campo2
document.write("El campo2 se encuentra en " +campo2.imprimeCiudad() + "<br>");
//imprimimos la capacidad del campo3
document.write("El campo3 tiene un aforo de " + campo3.imprimeCapacidad() + " espectadores" + "<br>");
//agregamos 2 gradas con 4 asientos por grada al campo1
document.write("agregamos dos gradas y cuatro asientos por grada <br>");
campo1.agregarGradasYAsisentos(2,4);

//agregamos 4 socios al campo1
campo1.agregarSocio(0,0,"Juan Soria");
campo1.agregarSocio(0,1,"Pablo Ruiz");
campo1.agregarSocio(0,2,"Jose Perez");
campo1.agregarSocio(1,1,"Antonio Alvarez");
//imprimimos los socios del campo1
document.write("imprimimos los socios <br>");
campo1.imprimirSocio();

//agregamos 1 gradas con 3 asientos por grada al campo1
document.write("agregamos 1 grada y tres asientos por grada <br>");
campo1.agregarGradasYAsisentos(1,3);
//agregamos 1 socio mas al campo1 del asiento 2 de la grada 3
campo1.agregarSocio(1,1,"Javier Navarro");
document.write("imprimimos los socios <br><br>");
campo1.imprimirSocio();
document.write(campo1.gradas.length);





</script>


</body>
</html>
  #2 (permalink)  
Antiguo 15/01/2014, 13:05
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: hola me presento y haber si me podeis ayudar

Parece que lo está sobreescribiendo. Prueba así y acomódalo a tu gusto.
Código Javascript:
Ver original
  1. this.agregarGradasYAsisentos = function(grada, asiento) {
  2.  
  3.   for (var i = 0; i < grada; i++) {
  4.   this.gradas[this.gradas.length] = asiento;
  5.      document.write("<br>");
  6.      this.gradas[this.gradas.length - 1] = [];
  7.      for (var e = 0; e < asiento; e++) {
  8.   this.gradas[this.gradas.length - 1][e] = "vacio";
  9.      document.write(this.gradas[this.gradas.length - 1][e] + "<br>");
  10.   }
  11.  
  12.   document.write("<br>");
  13.   return this.gradas;
  14. }
  #3 (permalink)  
Antiguo 16/01/2014, 05:22
 
Fecha de Ingreso: enero-2014
Mensajes: 2
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: hola me presento y haber si me podeis ayudar

Cita:
Iniciado por bathorz Ver Mensaje
Parece que lo está sobreescribiendo. Prueba así y acomódalo a tu gusto.
Código Javascript:
Ver original
  1. this.agregarGradasYAsisentos = function(grada, asiento) {
  2.  
  3.   for (var i = 0; i < grada; i++) {
  4.   this.gradas[this.gradas.length] = asiento;
  5.      document.write("<br>");
  6.      this.gradas[this.gradas.length - 1] = [];
  7.      for (var e = 0; e < asiento; e++) {
  8.   this.gradas[this.gradas.length - 1][e] = "vacio";
  9.      document.write(this.gradas[this.gradas.length - 1][e] + "<br>");
  10.   }
  11.  
  12.   document.write("<br>");
  13.   return this.gradas;
  14. }
gracias por tu ayuda al final solucionado con ayuda y ha quedado asi

Cita:
this.agregarGradasYAsisentos=function(grada,asient o)

{
var numGradas = this.gradas.length;
// añadimos tantas gradas como indique grada
for (var i = 0; i < grada; i++) {
this.gradas[numGradas + i] = new Array();
// añadimos los asientos indicados por asiento a cada nueva grada
for (var j = 0; j < asiento; j++) {
this.gradas[numGradas + i][j]="vacio";
};

}
//document.write("<br>");

return this.gradas;


}

Etiquetas: funcion, html, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:19.