简单的JavaScript" Web App"

时间:2018-06-14 16:57:13

标签: javascript

我正在做一个小项目。这是关于解决数学之谜。你可以在这里找到回购:https://github.com/soulwash/how-many-soldiers

输入数字并单击"尝试"时出现问题。在我这样做之后,我想使用按钮"添加+ 1","添加+ 7"或者"下一个更高的解决方案"。问题是,它不只是添加数字,而是在数字末尾添加数字,从而创造更高的数量。 例如:

输入290 - >然后点击试试 - >然后点击"添加+ 1" - >它以2901而不是291

结束

同样是+7和"下一个更高的解决方案"但不是减去选项。

你能帮我解决这个问题吗?

谢谢!

3 个答案:

答案 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会自动将数据类型转换为字符串。例如:

  • var x =“5”+ 2 + 3; //输出:523
  • var x = 5 + 2 +“3”; //输出:73
  • var x = 5 + 2 + 3; //输出:10

所以再次检查值“+运算符”使用两种类型 1)添加 2)连接字符串

最好的运气:)

答案 2 :(得分:-1)

在文件/src/app/howmanysoldiers.js43中,您使用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