我想创建一个MaxMinAvgSum的函数,但问题是当用户在所有文本字段中输入数字时,它会给出准确的结果。 但是,当TextField 3为空时,不会给出准确的结果。 我尝试处理此事,但没有任何反应。

function maxer() {

  var max = 0,
    min = 0,
    sum = 0,
    avg, power = "<p>MAX:";
  var arrayName = [3];
  arrayName[0] = document.getElementById('number1').value;
  arrayName[1] = document.getElementById('number2').value;
  arrayName[2] = document.getElementById('number3').value;

  if (arrayName[2] == "") {
    arrayName[2] = 0;
  }

  var f = Math.max(arrayName[0], arrayName[1], arrayName[2]);
  max = f;

  var g = Math.min(arrayName[0], arrayName[1], arrayName[2]);
  min = g;


  for (var i = 0; i < arrayName.length; sum = sum + parseInt(arrayName[i]), avg = sum / arrayName.length,
    i++);

  power += max + "</p>" + "<br/>";
  power += "<p>Min:";
  power += min + "</p>" + "<br/>";
  power += "<p>SUM:";
  power += sum + "</p>" + "<br/>";
  power += "<p>AVERAGE:";
  power += avg + "</p>" + "<br/>";
  document.getElementById('mmsa').innerHTML = power;
}
Enter Number 1: <input id="number1" type="text" name="number1" placeholder="Enter Number 1" />
Enter Number 2: <input id="number2" type="text" name="number2" placeholder="Enter Number 2" />
Enter Number 3: <input id="number3" type="text" name="number3" placeholder="Enter Number 3" />
<button type="button" onClick="maxer()">Click This To Operate</button>
<p id="mmsa"></p>

===============>>#1 票数:2

 function maxer() { var numbers = [].map.call( // Get strings from the inputs document.querySelectorAll('.number'), function(el) { return el.value; } ).filter(function(str) { // Filter out empty strings return str; }).map(Number); // Convert to numbers var max = Math.max.apply(void 0, numbers), min = Math.min.apply(void 0, numbers), sum = numbers.reduce(function(a,b) { return a + b; }), avg = sum / numbers.length; document.getElementById('mmsa').innerHTML = "<p>Max: " + max + "</p>" +"<p>Min: " + min + "</p>" +"<p>Sum: " + sum + "</p>" +"<p>Average: " + avg + "</p>"; } document.querySelector('button').onclick = maxer; 
 <p>Enter Number 1: <input class="number" type="text" /></p> <p>Enter Number 2: <input class="number" type="text" /></p> <p>Enter Number 3: <input class="number" type="text" /></p> <button type="button">Click This To Operate</button> <div id="mmsa"></div> 

===============>>#2 票数:1 已采纳

简而言之,您只需要处理包含值的数组元素。 理想情况下,您的数组应该只大一些,因为它需要保存有效的输入值。 Oriol的解决方案以一种非常干净和紧凑的方式实现了这一目标,但是如果您不熟悉Javascript,可能很难理解。 如果您想要更接近原始解决方案的方法,那么可以使用一种(稍微不太干净)的替代方法,该替代方法会尽可能多地使用原始代码:

 function maxer() { var max = 0, min = 0, sum = 0, avg, power = "<p>MAX:"; var arrayName = []; for(var i=1;i<=3;i++) { if(document.getElementById('number' + i).value.trim().length > 0) { arrayName[arrayName.length] = parseInt(document.getElementById('number' + i).value); } } if(arrayName.length > 0) { max = arrayName[0]; min = arrayName[0]; sum = arrayName[0]; for (var j = 1; j < arrayName.length; j++) { max = Math.max(max, arrayName[j]); min = Math.min(min, arrayName[j]); sum += arrayName[j]; } var avg = sum / arrayName.length; power += max + "</p>" + "<br/>"; power += "<p>Min:"; power += min + "</p>" + "<br/>"; power += "<p>SUM:"; power += sum + "</p>" + "<br/>"; power += "<p>AVERAGE:"; power += avg + "</p>" + "<br/>"; document.getElementById('mmsa').innerHTML = power; } } 
 Enter Number 1: <input id="number1" type="text" name="number1" placeholder="Enter Number 1" /> Enter Number 2: <input id="number2" type="text" name="number2" placeholder="Enter Number 2" /> Enter Number 3: <input id="number3" type="text" name="number3" placeholder="Enter Number 3" /> <button type="button" onClick="maxer()">Click This To Operate</button> <p id="mmsa"></p> 

  ask by Ven Nilson translate from so

未解决问题?本站智能推荐:

5回复

Javascript-每次鼠标悬停时都会生成新颜色

编辑 :我唯一的问题是缺少jQuery 我的代码应该在每次鼠标悬停时生成一种新颜色,但是它不起作用,您能告诉我问题出在哪里吗? var number; var newColor; setInterval(function() { number = Math.floor((
1回复

使用javascript填写表单填写

我正在尝试编写一个试图填写ASP表单的javascript脚本。 问题是,当我设置用户名时,浏览器会加载一个新的HTML,除了我刚刚设置的值。 这发生在2 <input>和1 <select>字段中,只是相同的事情。 有人能告诉我可能会发生什么吗? 提前致
2回复

从javascript中的base64数据读取图像会生成不同大小的图像

我正在尝试使用chrome扩展名获取页面的屏幕截图,并尝试裁剪图像。 截取屏幕截图后,我得到了图像的base64 dataUrl。 当我尝试使用dataURL渲染图像时,该图像的渲染比原始图像更大(显示为放大)。 当我手动给>对象提供原始大小时,它可以很好地呈现。
1回复

一旦用户开始在文本字段中输入,您如何选中复选框? 如果javascript / html中的textfield为空,也取消选中该复选框

所以我有一些代码可以在用户开始在文本字段中输入后检查复选框,但如果用户决定删除他或她开始输入的所有内容并将文本字段留空,则无法取消选中。 有帮助吗? 谢谢!
1回复

通过Javascript将XML节点调用为HTML在Dreamweaver中有效,但是当我在服务器中尝试时会生成空白页

我试图做一个document.write一些xml以html显示。 我是Java语言的初学者,请多多包涵。 这是我到目前为止的代码: 我也尝试过: 然后我尝试: 在研究某些站点时,它提到XML不能与document.write一起使用。 这是真的? 为什么它可以在
1回复

查找textfield1到textfield2 javascript的值,并从textfield3查看textfield1的等效值

嗨,我不是javascript专家,但我想实现类似 有一个名为textfield1的文本字段,用户将输入10位数字,然后用户输入的内容将与textfield2进行比较(如果它实际上位于textfield2内),但是我可以做到,但是我有与textfield2的每个值相对应的textbox3,
3回复

当用户单击重置按钮JavaScript时,恢复文本字段的默认值

当用户单击“重置”按钮时,我试图使文本字段恢复为其默认值。 现在,当用户单击“重置”按钮时,它所做的全部工作就是用“''替换用户的文字。 如何使用纯JavaScript(无jQuery)做到这一点? HTML: JAVASCRIPT:
2回复

JavaScript填写HTML输入表单

我有一个生成的按钮列表: 我想调用一个JavaScript函数: 填写其他一些<td> : 这就是我尝试过的方式。 生成的按钮没有任何问题,但是没有填写表格。 有什么想法可以解决吗?
3回复

通过JavaScript填写HTML选择“ FontSize”

我想按脚本填写我的选择。 我正在努力填充方法。 当我要填充我的FontSizeMenu时,请使用以下代码: “ FillSelection”方法出了点问题,它表示option元素不是函数。 有人知道什么是错的或遗漏的吗? 谢谢
2回复

javascript表格填写方式不同

我有功能 它的工作原理和填充表良好。 但是,当我尝试以简短形式编写它时。 它将所有数据填充到一列中。 怎么了 ? 为什么要使每个单元格在不同的行中?