Código Javascript:
Ver original
<html> <head><title>problema javascript</title> </head> <body> <script type="text/javascript"> function persona(nombre, edad){ //se crea la clase persona this.nombre = nombre; this.edad = edad; } var Personas = new Array(); Personas[0] = new persona("Benjamin", 30); //se crea el array y se llena Personas[1] = new persona("Encarni", 28); Personas[2] = new persona("Antonio", 40); Personas[3] = new persona("Miguel", 35); var em = 0; var Nem = 0; //variables em(edad mayor) y Nem(numero edad mayor) for(i=0; i<Personas.length; i++){ //bucle para saber edad mayor if(persona.edad > em){ em = persona.edad; Nem = 1; } else if(persona.edad == em){ Nem++; } } alert(em); //alert de (em) que no muestra el valor deseado </script> </body> </html>
Primero creo la clase persona y despues creo un array y lo lleno con cuatro objetos de dicha clase. Recorro el array y llamo a una función que me detecte cual de las edades introducidas es la más alta con el fin de mostrarla en pantalla. Creo que todo está bien, pero cuando hago el "alert" de la variable "em" me muestra el valor 0 que es el valor con el que la habia inicializado y no el valor que toma despues de aplicarle el bucle "for". He probado con un "return" despues del bucle pero no me funciona. Espero que puedan ayudarme un saludo.