我最近一直在尝试使用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;
}
答案 0 :(得分:1)
这是一个小例子:
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;
我只想知道在输入my时如何更新值 自动输入
在这里,我使用onkeyup
事件来处理用户输入。
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;
答案 1 :(得分:0)
您可以在输入中使用split
功能。我在这里给你一个简单的例子:
var string = "1.3.45.7";
var array = string.split(".");
// array = [1, 3, 45, 7]
document.write(array);
&#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;
希望这会对你有所帮助。