这适用于我的乘法函数,但是当我用简单的+ =尝试它时,它会按顺序生成数组值而不是添加它们吗?
//sum()
function sum() {
var val1 = document.getElementById('sumMulti').value;
var array = val1.split(',');
var arraySum = 0;
for (var i = 0; i < array.length; i++) {
arraySum += array[i];
}
document.getElementById('displayLabel').innerHTML = "The sum of your numbers is: " + arraySum.toString() + ".";
}
<div class="col-md-4">
<label class="control-label">Enter Numbers Seperated by ",":</label>
<br />
<input type="text" id="sumMulti" class=" form-control" />
<button type="submit" onclick="sum()" class="btn btn-primary pull-right" style="margin:20px 60px 10px 0px;">Sum()</button>
<div id="displayLabel" class="control-label"></div>
</div>
答案 0 :(得分:2)
您需要将数字解析为整数。
//sum()
function sum() {
var val1 = document.getElementById('sumMulti').value;
var array = val1.split(',');
var arraySum = 0;
for (var i = 0; i < array.length; i++) {
arraySum += parseInt( array[i] );
}
document.getElementById('displayLabel').innerHTML = "The sum of your numbers is: " + arraySum.toString() + ".";
}
<div class="col-md-4">
<label class="control-label">Enter Numbers Seperated by ",":</label>
<br />
<input type="text" id="sumMulti" class=" form-control" />
<button type="submit" onclick="sum()" class="btn btn-primary pull-right" style="margin:20px 60px 10px 0px;">Sum()</button>
<div id="displayLabel" class="control-label"></div>
</div>
答案 1 :(得分:0)
你需要学会喜欢parseInt
功能。
默认基数为10,但您也可以指定其他基数(例如,有时使用parseInt(hexString, 16)
解析十六进制非常方便。)
如果您期望实数,则可能更喜欢parseFloat
。它采用相同的参数。
至于为什么这适用于乘法,Javascript因背后的类型转换而臭名昭着。字符串有+
运算符(连接),因此当您获得输入的值(在解析之前是一个字符串)时,它将执行连接。但是,字符串 没有*
运算符。在你的背后,Javascript运行时尝试将字符串解析为十进制数,然后相乘。这不是我所依赖的行为,所以我更愿意先显式解析所有输入,然后对它们执行算术运算。
//sum()
function sum() {
var val1 = document.getElementById('sumMulti').value;
var array = val1.split(',');
var arraySum = 0;
for (var i = 0; i < array.length; i++) {
arraySum += parseInt(array[i], 10);
}
document.getElementById('displayLabel').innerHTML = "The sum of your numbers is: " + arraySum.toString() + ".";
}
<div class="col-md-4">
<label class="control-label">Enter Numbers Seperated by ",":</label>
<br />
<input type="text" id="sumMulti" class=" form-control" />
<button type="submit" onclick="sum()" class="btn btn-primary pull-right" style="margin:20px 60px 10px 0px;">Sum()</button>
<div id="displayLabel" class="control-label"></div>
</div>