2015-02-09 22 views
0

的Javascript:如何確定生成隨機數的數組中的最高和最低數字; JavaScript的

var arrayLength = prompt("Enter how many elements you want?"); 

       if(isNaN(arrayLength) || arrayLength < 1){ 
        arrayLength = 50; 
       } 

      var array = []; 
      var list = "<ul>"; 

      var totalSum = 0; 
      var totalOddSum = 0; 
      var totalEvenSum = 0; 
      var lowestNum = 0; 
      var highestNum = 0; 

      for(i = 1; i <= arrayLength; i++){ 

       array[i] = parseInt(Math.random() * 15); 
       list += "<li>" + array[i] + "</li>"; 

       totalSum += array[i]; 

       if(array[i] % 2 == 0){ 
        totalEvenSum += array[i]; 
       } 
        else{ 
         totalOddSum += array[i]; 
        } 
      } 

      list += "</ul>"; 

      document.getElementById("div1").innerHTML += list; 

      document.getElementById("div2").innerHTML += "Total Sum: " + totalSum + "<br>"; 
      document.getElementById("div2").innerHTML += "Total Even Sum: " + totalEvenSum + "<br>"; 
      document.getElementById("div2").innerHTML += "Total Odd Sum: " + totalOddSum + "<br>"; 
      document.getElementById("div2").innerHTML += "Lowest Number: " + lowestNum + "<br>"; 
      document.getElementById("div2").innerHTML += "Highest Number: " + highestNum + "<br>"; 

HTML:

<div id="div1"> 
     </div> 

<div id="div2"> 
</div> 

正如標題所說,我希望能找到我的陣列產生的最低和最高的數字。爲了找到Math.random()生成的最高和最低數字,我需要在循環中實現哪些內容?

謝謝你們。

回答

0

首先,最小和最大的初始值是錯誤的:

var lowestNum = 0; 
var highestNum = 0; 

最小值應該初始化爲+ inf的最大值作爲-Inf。

var lowestNum = Infinity, highestNum = -Infinity; 

然後,添加一個簡單的條件,更新的最低和最高尋到至今

if (array[i] < lowestNum) { 
    lowestNum = array[i]; 
} 
if (array[i] > highestNum) { 
    highestNum = array[i]; 
} 

在循環結束時,變量將表示整個數組中的最低和最高數字。

0

您可以使用Math.max()Math.min()找到一個數組中的最高或最低值:

var highest = Math.max.apply(Math, array); 

var lowest = Math.min.apply(Math, array); 

有沒有必要做自己的循環。這是可行的,因爲Math.max()Math.min()都會接受任意數量的參數並對它們進行操作,所以如果使用.apply()作爲一系列參數傳遞數組,它將在一次函數調用中評估整個數組。

相關問題