//global variable
counter=0;
var highestAvg=0;
var average = new Array();
var studObj = new Array();
var teachObj = new Array();
//Objects
var student = {
studName:"",
studentId:"",
courses:['a', 'b', 'c', 'd'],
marks:[]}
var teacher = {
profName:"",
course:"",
office:"",
email:""}
for(var i=0; i<30; i++)
{
studObj[i] = Object.create(student);
var check = prompt('Please enter students name(!!! to exit): ','');
if(check !== '!!!')
{
studObj[i].studName = check;
studObj[i].studentId = prompt('Please enter student ID: ','');
var total=0;
for(var j=0; j<4; j++)
{
studObj[i].marks[j] = prompt('Please enter student marks for ' + studObj[i].courses[j] + ' : ','');
if(studObj[i].marks[j] > 100 || studObj[i].marks[j] < 0)
{
alert("Incorrect mark, please enter a correct mark!")
j--;
}
else
{
total += Number(studObj[i].marks[j]);
}
}
average[i] = total/4;
counter++;
}
else
{
break;
}
alert(average[i]);
}
var highestAvg = Number(average[0]);
for(var x=1; x<counter; x++)
{
if((Number(average[x])) > highestAvg)
{
highestAvg = average[x];
var z=x
}
}
alert(highestAvg);
alert('The student with the highest overall average is: \nStudent Name: ' + studObj[z].studName + '\nStudent ID: ' + studObj[z].studentId + '\nCourses: ' + studObj[z].courses + '\nMarks: ' + studObj[z].marks + '\nAverage Mark: ' + average[z]);
Я не знаю, почему массив меток не сохраняет массив studObj, вместо этого он перезаписывается. Я попытался добавить еще один массив, чтобы удерживать значения, но снова он показывает только последние 4 метки. Спасибо за помощь заранее.Массив показывает только последний набор входов
TIL есть то, что называется [ 'prompt'] (https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt) в Javascript. Но я рекомендую вам не злоупотреблять им так, как вы в настоящее время используете. – bits
Это прекрасно работает для меня, хром 32.0.1700.107 м. Просто запустил его с консоли, и все значения назначены на правильные точки. В каком браузере и версии это должно быть реализовано? (Это раздражает, но вы должны просто изучить форму ...) Кроме того, вместо счетчика я могу предложить использовать 'array.length'? –
Пробовали ли вы использовать 'Math.max.apply (Math, average)', а затем перебирали ваш 'средний' массив, чтобы получить номер студента? Тогда нет необходимости в 'var counter'. – PHPglue