首页 > 解决方案 > 比较数字总是返回 false

问题描述

我生成一个带有间隔的随机数,然后检查用户选择的数字是否相同,但它总是返回 false

const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);

function CheckNumber(rndNumber) {
  var numberChoosed = document.getElementById("numberChoosed").value;
  console.log("rndNumber", rndNumber)
  console.log("numberChoosed", numberChoosed);
  if (numberChoosed == rndNumber) {
    console.log("true");
  } else {
    console.log("False");
  }

}

function RandomNumberGenerator() {
  var min = document.getElementById("bottomNumber").value;
  var max = document.getElementById("topNumber").value;
  return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>

<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>

标签: javascript

解决方案


删除rndNumberfromfunction CheckNumber(rndNumber) {因为那实际上是 checkButton 上的点击事件

转换为数字也是一个好主意,因为.value它是一个字符串。

意志为你铸造,==但它不再取决于你

const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);

function CheckNumber() {
  var numberChoosed = document.getElementById("numberChoosed").value;
  console.log("rndNumber", rndNumber)
  console.log("numberChoosed", numberChoosed);
  console.log(+numberChoosed === +rndNumber); // cast to number

}

function RandomNumberGenerator() {
  var min = document.getElementById("bottomNumber").value;
  var max = document.getElementById("topNumber").value;
  return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>

<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>


推荐阅读