Javascript 并不总是返回 false

标签 javascript html

这是我的代码。控制台总是读错。怎么了。我认为这是我反对文本框的时候。

function compare() {
  var test = "test";
  var input = document.getElementById("input").value;
  var inputLen = input.length;
  var tick;
  for (tick = 0; tick < inputLen; tick++) {
    if (input[tick] != test[tick]) {
      break;
    }
  }
  if ((tick - 1) == test.length) {
    console.log("equal");
  } else {
    console.log("wrong");
  }
}
<input type="text" id="input" placeholder="text">
<input type="submit" id="submit" onclick="compare()">

我真的需要一些帮助。 console.log 总是返回“错误”。

最佳答案

在执行 for 循环时,tick 变量在退出循环之前的最后一次迭代中增加到 5。要解决此问题,请将其与 test.length 进行比较,但不要使用 -1 减少它:

function compare() {
  var test = "test";
  var input = document.getElementById("input").value;
  var inputLen = input.length;
  var tick;
  for (tick = 0; tick < inputLen; tick++) {
    if (input[tick] != test[tick]) {
      break;
    }
  }
  // After exiting the loop, tick will be equal to 5, not 4.
  if (tick === test.length) {
    console.log("equal");
  } else {
    console.log("wrong");
  }
}
<input type="text" id="input" placeholder="text">
<input type="submit" id="submit" onclick="compare();">

关于Javascript 并不总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47118667/

相关文章:

javascript - 无法构建 ngtoast

javascript - JS : Change OnClick Event from variable

javascript - SharePoint 2013获取列表项字段值

php - 仅在 wordpress 主博客页面上显示标题摘录?

html - Angular 4 - 动态添加的元标记不起作用

javascript - 如何制作类似 Pottermore 的动画光标

javascript - 如何在javascript中访问另一个数组内的对象数组内的对象?

javascript - 如何在不使用内联样式表的情况下将此元素的颜色传递给 javascript?

javascript - 将 JavaScript 更改为 jQuery - createElement

html - Mac 上的 Safari 在我的表单中显示插入符号