簡體   English   中英

Javascript檢查記錄集中的最大/最小/平均數

[英]Javascript check for Max/Min/Average number from a record set

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 />");

}

記錄集只是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;

同樣,您也可以將平均值計算移出循環,因為它的值僅在外部使用。

順便說一句,使用這些ZERO和ONE_HUNDRED常量有什么意義-它們不是語義上的。

對於您的兩個“如果條件”,您正在檢查工資的新值是否大於最大值或最小值。

其中hourlyMaximum給出EmployeePayrollRecords集中每個EmployeeHourlyWage的最大值。

hourlyMinimum給出EmployeePayrollRecords集中每個EmployeeHourlyWage的最小值。

因此,對於while循環中的每次迭代,您都需要在if塊中重新分配工資值。

如果從記錄中獲得的當前工資大於當前的最高工資,則分配它,否則不分配。 最低要求類似的過程。

當前的“ if blocks”僅在每小時最低工資和最高工資的值低於100(ONE_HUNDRED)時才重新分配

為了向自己證明您確實獲得了正確的值,請嘗試通過代碼和手動輸出它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM