我的Math max函数有什么问题?

时间:2016-07-25 08:44:14

标签: javascript

  <button onclick="myFunction()">Try it</button>
  <p id="demo"></p>
  <script>
    var numberArray = [1, 2, 3, 4, 10, 5, 6, 7];
        var i,
            len = numberArray.length,
            imGreater = numberArray[0];
     for (i = 0; i < len; i++) {
       maxNumber = Math.max(len)   
    }       
    function myFunction() {
        document.getElementById("demo").innerHTML =  console.log(maxNumber );
    }
  </script>

它出了什么问题?是关于Javascript范围的吗?

3 个答案:

答案 0 :(得分:1)

没有什么是“错误的”,因为它正在完全按照你的要求行事。您在数组的长度上运行Math.max,它不会更改,可能不是您要执行的操作。我想你想对实际的数组运行它 Math.max.apply(null,numberArray); 因为这将为您提供所提供数组中的最高编号。

自己动手

你也可以自己在循环中编写这个,这可能也是你想要做的,考虑到你创建了一个循环并设置了一些变量。在创建这些变量后开始,您可以编写以下循环

for(i = 1; i < len; i++) // you can skip the first one as this is set to imGreater already
{
 if(numberArray[i] > imGreater)
 {
    imGreater = numberArray[i];
 }
}

答案 1 :(得分:1)

使用:

     document.getElementById("demo").innerHTML =  maxNumber ;

而不是

     document.getElementById("demo").innerHTML =  console.log(maxNumber) ;

使用

var numberArray = [1, 2, 3, 4, 10, 5, 6, 7];
var maxVal=Math.max(...numberArray);
console.log(maxVal);

而不是:

docker logs {container_id}

DEMO:

&#13;
&#13;
--restart=always
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这是关于小提琴的工作示例,只需使用Math.max(已在JS中预定义)。

&#13;
&#13;
var numberArray = [1, 2, 3, 4, 10, 5, 6, 7];
alert(Math.max.apply(Math,numberArray));
&#13;
&#13;
&#13;

这是另一个工作示例(Your style)

&#13;
&#13;
 var numberArray = [1, 2, 3, 4, 10, 5, 6, 7];
    var maxNumber = 0;
    var len = numberArray.length;
    for (var i=0; i < len; i++) {
      if(numberArray[i] > maxNumber){
        maxNumber=numberArray[i];
      }
    }       
    alert(maxNumber);
&#13;
&#13;
&#13;