如果输入的最后一个号码后面有空格,程序会中断。如果输入空格,如何阻止该功能中断?我试过$ .trim,但无法弄清楚如何让它工作。还尝试了if / else语句
function calculate() {
var numInput = document.getElementById("qty").value;
var numArray = numInput.split(" ").map(function(t) {
return parseInt(t);
});
var minValue = Math.min.apply(null, numArray);
var maxValue = Math.max.apply(null, numArray);
var sumValue = numArray.reduce(function(previous, current) { return previous + current });
var productValue = numArray.reduce(function(previous, current) { return previous * current });
var meanValue = numArray.reduce(function(previous, current) { return previous + current / numArray.length });
document.getElementById("result").innerHTML = 'Min value is: ' + minValue + '<br>' + 'Max value is: '+ maxValue + '<br>' + 'Sum value is: ' + sumValue + '<br>' + 'Product value is: ' + productValue + '<br>' + 'Mean value is: ' + meanValue;
}
function clearAnswer(){
document.getElementById("result").innerHTML = '';
document.getElementById("qty").value = '';
}
<h1> Problem JavaScript</h1> Enter 5 numbers with spaces in between each:
<input type="text" id="qty">
<input type="button" id="go" value="Calculate" onclick="calculate()">
<button type="reset" id="reset" onclick="clearAnswer()">Clear</button>
<div id="result"></div>
答案 0 :(得分:3)
我尝试了$ .trim,但无法弄清楚如何让它工作。
如果您使用jquery trim,请确保首先包含jquery库。
更改
var numArray = numInput.split(" ").map(function(t) {
return parseInt(t);
});
到
var numArray = $.trim( numInput ).split(" ").map(function(t) {
return parseInt(t);
});
或只是
var numInput = $.trim( document.getElementById("qty").value );
使用$.trim()
修剪numInput
第一个
修改强>
你真的不需要在这里使用jquery来使用trim函数,javascript本身有trim方法,你可以使用它。
答案 1 :(得分:0)
$.trim
是一个jquery函数,它通过将参数传递给trim
来工作,该参数将被修剪。例如:
$.trim(" a ")
将导致"a"
你的例子会像这样工作
var numArray = $.trim(numInput).split(" ").map(function(t) {
return parseInt(t);
});
当且仅当定义了jquery时,即加载库。但是,如果你想专门为此目的使用jquery,那么为此目的有一个纯JS函数作为替代,称为trim
。这可以这样使用:
var numArray = numInput.trim().split(" ").map(function(t) {
return parseInt(t);
});