Foros del Web » Programando para Internet » Javascript »

Problemita con Javascript

Estas en el tema de Problemita con Javascript en el foro de Javascript en Foros del Web. Hola gente, a ver si me pueden ayudar, soy principiante en este lenguaje, tengo q ingresar nombre y edad en un formulario indefinidas veces, y ...
  #1 (permalink)  
Antiguo 23/08/2011, 13:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Problemita con Javascript

Hola gente, a ver si me pueden ayudar, soy principiante en este lenguaje, tengo q ingresar nombre y edad en un formulario indefinidas veces, y una vez cargado mostrar el o los nombres de los mas viejos.. El tema es q todavia tngo dudas en javascript, se me complica cuando tengo q mostrar mas de 1 viejo no se como hacer la logica .. aqui les dejo hasta dond llegue...

<html>
<head>
<script>
v = new Array()
i=0;
k=0;

function ingresar(edad, nombre)
{
this.edad=edad;
this.nombre=nombre;
}

function cargado()
{

edad=parseFloat(document.frmIngresar.txtedad.value )
nombre=document.frmIngresar.txtnombre.value

v[i]= new ingresar(edad, nombre)
i++


}

function mostrar()
{
h=0;
masviejo=0;
may=0;

for(h=0; h<v.length; h++)
{
if(v[h].edad>may)
{
may=v[h].edad
masviejo=h;
}


}
alert("El/los mas viejos son: " + v[masviejo].nombre)




}

</script>

</head>
<body>
<form name="frmIngresar">
EDAD:<input type="text" name="txtedad">
NOMBRE:<input type="text" name="txtnombre">
<input type="button" value="cargar" onclick=cargado()>
<input type="button" value="mostrar" onclick=mostrar()>

</form>
</body>
</html>
  #2 (permalink)  
Antiguo 23/08/2011, 14:23
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problemita con Javascript

hola SriKea esta es la solucion que yo encontre:
<html>
<head>
<script>
v = new Array()
i=0;
k=0;
edadmayor=0;
edadmayor2=0;
mayores="";
primero=0;
function cargado()
{

edad=parseFloat(document.frmIngresar.txtedad.value )
nombre=document.frmIngresar.txtnombre.value
edadmayor=edad
if (primero==0){
edadmayor2=edadmayor;
}
if(edadmayor2==edadmayor){
mayores=mayores+" ; "+nombre;
primero=1
}
if (edadmayor2<edadmayor){
mayores=nombre;
primero=1
edadmayor2=edadmayor
}
}

function mostrar()
{
alert("El/los mas viejos es/son: " + mayores)
}

</script>

</head>
<body>
<form name="frmIngresar">
EDAD:<input type="text" name="txtedad">
NOMBRE:<input type="text" name="txtnombre">
<input type="button" value="cargar" onclick=cargado()>
<input type="button" value="mostrar" onclick=mostrar()>
</form>
</body>
</html>
Te recomendaria que en el proximo nuevo mensaje que postees lo hagas ponieno un mejor titulo a tu consulta como:"¿Como mostrar los nombres de las personas mayores de un array?" tal vez por lo poco llamativo de tu titulo a muchos no les den ganas de ayudarte saludos
PD: No se si necesitabas hacerlo desde un array; espero que te sirva mi respuesta
  #3 (permalink)  
Antiguo 23/08/2011, 14:37
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemita con Javascript

buenas,
otra alternativa que tienes usando el array, ya que lo vas llenando con cada ingreso, es realizando un sort (reordenar) y luego devolver el ultimo/primer elemento del array dependiendo de como se haya realizado el sort. lo unico que debes proveer una funcion a sort para indicarle como va a reordenar el array. en este caso particular necesitaras pasar una funcion porque los elementos del array no son numericos sino objetos.

notese el segundo y tercer ejemplo en el siguiente tutorial, http://www.w3schools.com/jsref/jsref_sort.asp

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 23/08/2011, 16:04
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problemita con Javascript

Muchas Gracias, me sirvio de mucho ambas respuestas!
  #5 (permalink)  
Antiguo 23/08/2011, 16:47
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 9 meses
Puntos: 32
Respuesta: Problemita con Javascript

Hola que tal,

Te diré algo que está fuera de tu problema, pero es algo que deverías aprender desde ya en javascript(en mi opinion) y es lo siguiente:

Cuando realizes un código de muchas líneas, siempre declara las variables usando var aunque aparentemente veas que el funcionamiento es lo mísmo, pues dependiendo dónde declares la variable, esta estará en determinado contexto, de lo contrario la variable se hará pública o global a todo el código javascript que tengas es una página y entre más código más errores de programación habrá.

Ejemplo correcto:
Código Javascript:
Ver original
  1. function x() {
  2.     var a = 1; // Se declara con "var"
  3.  
  4.     // La variable "a" es igual a 1
  5.  
  6.     function asd(){
  7.         // La variable "a" es igual a 1
  8.     }
  9.  
  10. }
  11.  
  12. // La variable "a" es igual a undefined
  13.  
  14. function asfgg(){
  15.     // La variable "a" es igual a undefined
  16. }

Ejemplo incorrecto:

Código Javascript:
Ver original
  1. function x() {
  2.     a = 1; // Se declara sin "var"
  3.  
  4.     // La variable "a" es igual a 1
  5.  
  6.     function asd(){
  7.         // La variable "a" es igual a 1
  8.     }
  9.  
  10. }
  11.  
  12. //La variable "a" es igual a 1
  13.  
  14. function asdqe(){
  15.     //La variable "a" es igual a 1
  16. }

Todo esto es para evitar problemas desconocidos, mira te pondré un ejemplo para que lo ejecutes y lo analizes:
Código Javascript:
Ver original
  1. function conteo1() {
  2.     var contador = 0;
  3.     function sumar() {
  4.         contador = contador + 1;
  5.         return contador;
  6.     }
  7.     return sumar;
  8. }
  9.  
  10. function conteo2() {
  11.     var contador = 0;
  12.     function sumar() {
  13.         contador = contador + 1;
  14.         return contador;
  15.     }
  16.     return sumar;
  17. }
  18.  
  19. var contextoConteo1 = conteo1();
  20. var contextoConteo2 = conteo2();
  21.  
  22. contextoConteo1();
  23. contextoConteo1();
  24. contextoConteo1();
  25. contextoConteo1();
  26. alert( "Conteo1 es: " + contextoConteo1() ); // 5
  27.  
  28. contextoConteo2();
  29. alert( "Conteo2 es: " + contextoConteo2() ); // 2
  30.  
  31. alert( " La variable \"contador\" es igual a " + contador +" \r\n, es decir no está visible aquí" );

Si observas la variable contador no es afectada de ninguna manera los dos conteos tienen sus propias variables "contador", prueba quitando "var" de las variables "contador" y verás que podrán ser afectadan entre los contadoras(como si tuviesen que compartir la mísma variable).

Otra cosa por la que es recomendable usar "var" es que rapidamente se conoce el origen de la variable y así no tienes que estar analizando para descubrir su posible origen.

Espero que sea de tu ayuda, pues yo antes tuve problemas sobre esto y no tenía idea de que era lo que sucedía hasta que con le tiempo lo fuí descubriendo (leyendo en internet) y por si no sabías sobre esto entonces te servirá, saludos.

Última edición por IXtremeLT; 23/08/2011 a las 16:54

Etiquetas: arrays, bucles, repeticiones, vectores, formulario
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 18:26.