我正在做一个小项目。这是关于解决数学之谜。你可以在这里找到回购:https://github.com/soulwash/how-many-soldiers
输入数字并单击"尝试"时出现问题。在我这样做之后,我想使用按钮"添加+ 1","添加+ 7"或者"下一个更高的解决方案"。问题是,它不只是添加数字,而是在数字末尾添加数字,从而创造更高的数量。 例如:
输入290 - >然后点击试试 - >然后点击"添加+ 1" - >它以2901而不是291
结束同样是+7和"下一个更高的解决方案"但不是减去选项。
你能帮我解决这个问题吗?
谢谢!
答案 0 :(得分:0)
听起来您将起始值作为字符串并尝试添加到字符串中。当您向字符串添加数字时,您将字符串与该数字连接起来(" 71" + 6变为" 716")。这是因为+作为添加和连接,取决于它使用的方式/时间。但是,-
行为不同。当你减去JavaScript时,会对类型进行快速转换,并且它会产生数字差异(" 716" - 6变为710,其中710现在是一种数字)。以下是一个简单的例子:
var st = "71";
st = st + 6;
console.log(st);
console.log(typeof st);
st = st - 6;
console.log(st);
console.log(typeof st);

答案 1 :(得分:0)
如果第一个值是字符串,则JavaScript会自动将数据类型转换为字符串。例如:
所以再次检查值“+运算符”使用两种类型 1)添加 2)连接字符串
最好的运气:)
答案 2 :(得分:-1)
在文件/src/app/howmanysoldiers.js
行43
中,您使用let userInput = document.getElementById("userInput").value
,但这是一个字符串。发生的事情就像下面的代码:
console.log('10' + 1) // '101'
console.log('10' - 1) // 9
要解决这种情况,您可以尝试两种不同的方法
使用parseInt
let userInput = parseInt(document.getElementById("userInput").value) // And now it is a number
减去价值
let userInput = document.getElementById("userInput").value - 0 // And now it is a number