Hola buenas tardes: tengo inconvenientes en mostrar el promedio de una lista de estudiantes que se van registrando uno a uno me arroja el valor NaN. Ademas, extrañamente las funciones de mostrarMayor y mostrarMenor no funcionan correctamente. Si se ejecuta una la otra no me envia resultados. En mi opinion creo que es la variable numerica que se captura en el arreglo estudiante. Pero ya he revisado e intentado muchas cosas pero no se que mas hacerle.. Agradezco la ayuda.. adjunto el html y javascript respectivo...
Código HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/ejercicio.js"></script>
<link rel="stylesheet" href="css/ejercicio.css">
</head>
<body>
<h1>Registro Estudiante</h1>
<b>Codigo</b>
<br>
<input type="text" id="txtCodigo">
<br>
<b>Nombre</b>
<br>
<input type="text" id="txtNombre">
<br>
<b>Nota:</b>
<br>
<input type="text" id="txtNota">
<br>
<br>
<button type="button" id="btnRegistrar">Registrar Estudiante</button>
<button type="button" id="btnPromedio">Registrar Promedio</button>
<button type="button" id="btnNotaMayor">Mostrar Nota Mayor</button>
<button type="button" id="btnNotaMenor">Mostrar Nota Menor</button>
</body>
</html>
Código Javascript
:
Ver originalwindow.onload=function(){
let estudiante=new Array();
let codigo;
let nombre;
let nota;
document.getElementById("btnRegistrar").addEventListener("click",registrar);
document.getElementById("btnPromedio").addEventListener("click",mostrarPromedio);
document.getElementById("btnNotaMayor").addEventListener("click",mostrarMayor);
document.getElementById("btnNotaMenor").addEventListener("click",mostrarMenor);
function registrar(){
codigo=document.getElementById("txtCodigo").value;
nombre=document.getElementById("txtNombre").value;
nota=parseFloat(document.getElementById("txtNota").value);
estudiante.push({'codigo':codigo,'nombre':nombre,'nota':nota});
document.getElementById("txtCodigo").value="";
document.getElementById("txtNombre").value="";
document.getElementById("txtNota").value="";
mostrarTabla();
}
var tabla=document.createElement("table");
function mostrarTabla(){
tabla.setAttribute("border","1");
var fila;
var celda;
for (var i = 0; i < estudiante.length; i++) {
fila=document.createElement("tr");
celda=document.createElement("td");
celda.appendChild(document.createTextNode(estudiante[i].codigo));
celda.appendChild(document.createTextNode(estudiante[i].nombre));
celda.appendChild(document.createTextNode(estudiante[i].nota));
}
fila.appendChild(celda);
tabla.appendChild(fila);
document.body.appendChild(tabla);
}
function mostrarPromedio(){
var sum=0;
for(var i=0;i<estudiante.lenght;i++){
sum+=estudiante[i].nota;
}
var prom=sum/i;
alert("El promedio de la clase es "+prom);
}
function mostrarMayor(){
var salida="";
var mayor=estudiante[0].nota;
for(var i=0;i<estudiante.length;i++){
if(mayor<estudiante[i].nota){
mayor=estudiante[i].nota;
alert("El estudiante con mayor nota es "+estudiante[i].nombre+
" con una nota de "+mayor);
}
}
}
function mostrarMenor(){
var salida="";
var menor=estudiante[0].nota;
for(var i=0;i<estudiante.length;i++){
if(estudiante[i].nota<menor){
menor=estudiante[i].nota;
alert("El estudiante con menor nota es "+estudiante[i].nombre+
" con una nota de "+menor);
}
}
}
}