我有一些水果名称存储在一个数组中。如果用户输入已存储在数组中的食物名称,则应返回true
,否则false
。
但是当我输入值true
时它只返回Mango
,否则总是返回false
,为什么?
这是我的代码:
HTML:
<input type="text" id="value" />
<button onclick="check()">test</button>
<p id="pValue">
</p>
JavaScript的:
var myVar;
check = function() {
myVar = document.getElementById("value").value;
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
for(i = 0; i < fruits.length; i++) {
if(myVar == fruits[i]) {
document.getElementById("pValue").innerHTML = "true";
}
else {
document.getElementById("pValue").innerHTML = "false";
}
}
}
答案 0 :(得分:5)
这是因为你正在使用for循环,所以只有最后一个值才会返回true。如果您选择将此作为方法保留,则可以向循环添加break;
。请参阅下面的更新小提琴::
var myVar;
check = function() {
myVar = document.getElementById("value").value;
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
for (i = 0; i < fruits.length; i++) {
if (myVar == fruits[i]) {
document.getElementById("pValue").innerHTML = "true";
break;
} else {
document.getElementById("pValue").innerHTML = "false";
}
}
}
<input type="text" id="value" />
<button onclick="check()">test</button>
<p id="pValue">
</p>