我有功能的这个功课问题。我可以将用户的字符串输入到数字数组中,但我无法弄清楚如何添加它们。我尝试做一个for循环,但这似乎是我走错了路。
问题: 允许用户输入三位数字。 编写一个将数字相加的函数。 提示#1:您需要将字符串转换为整数。 提示#2:字符串也可以视为数组。
这是我的代码:
document.getElementById('submitBtn3').addEventListener
("click", function ()) {
var digits = document.getElementById('digits').value;
var digitsArray = digits.split(',').map(function(i) {
return parseInt(i, 10);
})
console.log(digitsArray);
document.getElementById('q11').innerHTML = digitsArray;
})
任何帮助表示赞赏
答案 0 :(得分:0)
你有一些问题,
没有以下功能块的闭括号
("click", function ())
// ^
与split(',')
分割,仅适用于联合数组,如1,2,3
,但不包含字符串,不带逗号。这里需要一个空字符串split('')
。
现在,您可以在另一个循环中添加单个数字,或者通过添加扩展第一个循环。
document.getElementById('submitBtn3').addEventListener("click", function() {
var digits = document.getElementById('digits').value;
var digitsArray = digits.split('').map(function(i) {
return parseInt(i, 10);
});
console.log(digitsArray);
document.getElementById('q11').innerHTML = digitsArray;
});

<input id="digits">
<button id="submitBtn3">go!</button>
<div id="q11"></div>
&#13;
只是提示完整性。
字符串具有length
属性。这有助于使用选择的循环遍历字符串。内部访问可以使用String#charAt
,也可以使用括号和索引,例如string[index]
。
答案 1 :(得分:0)
function add(a, b) {
return a + b;
}
document.getElementById('submitBtn3').addEventListener("click", function() {
var digits = document.getElementById('digits').value;
var sum = digits.split("").map(function(n){return parseInt(n)}).reduce(add,0);
document.getElementById('q11').innerHTML = sum;
});
<input id="digits" type="number"/>
<button id="submitBtn3">go!</button>
<div id="q11"></div>
答案 2 :(得分:0)
这个可能比使用1行.map
更多的功课回答
function myFunc() {
var num = document.getElementById('digits').value;
var tot = 0;
num.split('').forEach( function (x) {
tot = tot + parseInt(x,10);
});
document.getElementById('output').innerHTML = tot;
}
<input id="digits" />
<button onClick="myFunc()">Submit</button>
<div id="output"></div>