的Javascript检查最大/最小/平均人数从记录集

问题描述:

function lab09unknownLoopCountPart2() { 

//Constants 
var ONE_HUNDRED = 100; 
var ZERO = 0; 

//Variables 
var employeeHourlyWage; 
var hourlyMaximum = ZERO; 
var hourlyMinimum = ZERO; 
var totalHourlyWage = ZERO; 
var records; 
var counter = ZERO; 
var average; 

records = openEmployeePayrollRecords(); 

while (records.readNextRecord()) { 
    employeeHourlyWage = records.getEmployeeHourlyWage(); 
    totalHourlyWage += employeeHourlyWage; 
    counter++; 
    average = totalHourlyWage/counter; 

    if (employeeHourlyWage < ONE_HUNDRED) { 
     hourlyMaximum = employeeHourlyWage; 
    } 
    if (employeeHourlyWage < ONE_HUNDRED) { 
     hourlyMinimum = employeeHourlyWage; 
    } 
} 
document.write("Average Hourly Wage: " + average + "<br />"); 
document.write("Maximum Hourly Wage: " + hourlyMaximum + "<br />"); 
document.write("Minimum Hourly Wage: " + hourlyMinimum + "<br />"); 

}的Javascript检查最大/最小/平均人数从记录集

的记录集是简单地从15个号码 - 30.我必须通过他们进行排序,找到最大,最小和平均。

我知道我的两个IF语句是不正确的,我想知道如何使用Math.min和Math.max来检查这个,没有

谢谢。

var hourlyMinimum = -1; 
    var hourlyMaximum = -1; 

    if (hourlyMaximum === -1 || employeeHourlyWage > hourlyMaximum) { 
     hourlyMaximum = employeeHourlyWage; 
    } 
    if (hourlyMinimum === -1 || employeeHourlyWage < hourlyMinimum) { 
     hourlyMinimum = employeeHourlyWage; 
    } 

假设工资不能为负。

if (employeeHourlyWage > hourlyMaximum) 
    hourlyMaximum = employeeHourlyWage; 
if (employeeHourlyWage < hourlyMinimum) 
    hourlyMinimum = employeeHourlyWage; 

此外,你可以移动平均计算以外的循环cuz它的价值仅用于外部。

顺便说一下,使用ZERO和ONE_HUNDRED常量的意义 - 它们不是语义上的。

+0

这就是我的教练让我们声明常量的方式,我不应该声明它们吗?我对你的意思有点困惑。 – TheStandardRGB 2010-11-23 20:15:21

对于您的两个“if条件”,您正在检查工资的新值是否大于最大值或最小值。

其中hourlyMaximum给出EmployeePayrollRecords集中每个EmployeeHourlyWage的最大值。

hourlyMinimum给出了在设定的各EmployeePayrollRecords EmployeeHourlyWage的最小值。

因此,对于while循环中的每次迭代,您需要重新分配工资值与if块中的值。

如果从记录中获得的当前工资大于当前最高值,则分配否则不要。最低限度的类似过程。

目前的“if块”只是抽调小时最低值和最高工资一旦低于100(ONE_HUNDRED)

为了证明自己,你确实得到正确的价值观,试图将它们输出通过代码和手工。