Javascript如何允许数组占用多个数字?

时间:2016-11-18 11:03:15

标签: html arrays loops

我最近一直在尝试使用html和javascript构建一个平均计算器。我想从一个文本框中获取所有输入,将它们添加到数组中并获得平均结果。我在下面的代码中所做的只需要一位数,因为str [i-1]还有其他替代方法吗?谢谢! Output photo

function calculate()
{

var str= document.getElementById("meanvalue").value;
for(var i=0; i<str.length; i++)
{
    if(str[i] == ".")
    {
        sum+=parseInt(str[i-1]);
        count++;
    }
}
sum/=count;
document.getElementById("meanresult").value=sum;

}

3 个答案:

答案 0 :(得分:1)

这是一个小例子:

&#13;
&#13;
document.getElementById('input').onkeyup = function() {
  this.value = this.value.replace(/[^0-9\.]/gi, '');// restrict non digit
  var sum = 0;
  var array = this.value.split(/\./);
  array.forEach(function(str) {
    sum += (parseInt(str, 10) || 0); //avoid NaN
  });
  document.getElementById('output').value = (sum / array.length || 0);// avoid NaN
}
&#13;
<input type="text" id="input" />
<input type="text" id="output" readonly='' />
&#13;
&#13;
&#13;

  

我只想知道在输入my时如何更新值   自动输入

在这里,我使用onkeyup事件来处理用户输入。

&#13;
&#13;
document.getElementById('input').onkeyup = function() {
  document.getElementById('output').value = this.value;//get input, set output
}
&#13;
<input type="text" id="input" />
<input type="text" id="output" readonly='' />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以在输入中使用split功能。我在这里给你一个简单的例子:

&#13;
&#13;
var string = "1.3.45.7";

var array = string.split(".");
// array = [1, 3, 45, 7]

document.write(array);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

首先拆分你的str而不是用于循环。

var str= document.getElementById("meanvalue").value.split('.');

同时删除循环中的if条件。

for(var i=0; i<str.length; i++)
{
   //if(str[i] == ".")
   // {
        sum+=parseInt(str[i-1]);`
        count++;
   // }
}
sum/=count;
document.getElementById("meanresult").value=sum;

希望这会对你有所帮助。