如何在这种数组中找到最大的元素值?

时间:2016-04-16 13:07:55

标签: javascript

我正在寻找正确的代码,因此名为“finder()”的函数可以执行并在Array中找到名为“sum”的最高值。 按“查找最大”按钮结果为:“[object HTMLInputElement]” 感谢您的任何帮助! 这是代码:

<html>
  <head>
   <title>Max</title>
    <meta charset="utf-8">
    <script type="text/javascript">
      var sum = document.getElementsByName('addends');
      function add() {
          var x = document.getElementById('apendiks');
          x.innerHTML+="<br/><input type='text' name='addends' size='7'>";
        }

       function finder() {  
          var max = sum[0];           
           for(i=0; i<sum.length;i++){

                if(sum[i] > max){
                   max = sum[i];
                }                 
           } 

          document.getElementById('showMaxValue').innerHTML = max;
        }

        function gather() {

          var total=0;
          for(i=0; i < sum.length; i++){

              total+=parseFloat(sum[i].value);
          }
          document.getElementById('score').innerHTML = total;
        }
        </script>
  </head>
  <body>
   <p><input type="button" onclick="add()" value="Add a new box"> </p>
   <p><input type="button" onclick="" value="-"> </p>

  <div id="apendiks"></div>
   <p><input type="button" onclick="gather()" value="Total sum"> </p>
    <p>Score: <b id="score"></b></p>
   <p><input type="button" onclick="finder()" value="Find max"> </p>
   <p id="showMaxValue"></p>
  </body>
 </html> 

2 个答案:

答案 0 :(得分:0)

  

var sum = document.getElementsByName(&#39; addends&#39;);

此行将为您提供节点列表,而不是数组。

finder方法中,您需要将其视为

  function finder() 
  {
       var max = paeseInt(sum[0].value) ;
       for(i=0; i<sum.length;i++){
            if(parseInt(sum[i].value) > max && !isNaN(sum[i].value)){ //assuming that strings should be ignored
               max = parseInt(sum[i].value) ;
            }
       } 
       document.getElementById('showMaxValue').innerHTML = max;
  }

答案 1 :(得分:0)

使用.value获取输入字段的值

&#13;
&#13;
<html>
  <head>
   <title>Max</title>
    <meta charset="utf-8">
    <script type="text/javascript">
      var sum = document.getElementsByName('addends');
        function add() {

          var x = document.getElementById('apendiks');

          x.innerHTML+="<br/><input type='text' name='addends' size='7'>";

        }

        function finder() {

          var max = sum[0].value;

           for(i=0; i<sum.length;i++){



                if(sum[i].value > max){


                   max = sum[i].value;

                }

           } 

          document.getElementById('showMaxValue').innerHTML = max;
        }





        function gather() {



          var total=0;
          for(i=0; i < sum.length; i++){

              total+=parseFloat(sum[i].value);
          }
          document.getElementById('score').innerHTML = total;
        }

        </script>
  </head>

  <body>
   <p><input type="button" onclick="add()" value="Add a new box"> </p>
   <p><input type="button" onclick="" value="-"> </p>


  <div id="apendiks"></div>
   <p><input type="button" onclick="gather()" value="Total sum"> </p>
    <p>Score: <b id="score"></b></p>
   <p><input type="button" onclick="finder()" value="Find max"> </p>
   <p id="showMaxValue"></p>
  </body>
 </html> 
&#13;
&#13;
&#13;