这是我的代码。控制台总是读错。怎么了。我认为这是我反对文本框的时候。
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/