2015-02-09 61 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()作为一系列参数传递数组,它将在一次函数调用中评估整个数组。

相关问题