将输入与数组值进行比较仅适用于单个值

Sal*_*ini 0 html javascript arrays

我有一些水果名称存储在一个数组中.如果用户输入已存储在数组中的食物名称,true则应返回,否则返回false.

但它只true在我输入值时返回Mango,否则总是返回false,为什么?

这是我的代码:

JSfiddle链接

HTML:

<input type="text" id="value" />
<button onclick="check()">test</button>
<p id="pValue">
</p>
Run Code Online (Sandbox Code Playgroud)

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";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jes*_*sse 5

这是因为您正在使用for循环,因此只有最后一个值将返回true.break;如果您选择将此作为方法保留,则可以向循环添加a .看下面更新的小提琴::

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";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="value" />
<button onclick="check()">test</button>
<p id="pValue">
</p>
Run Code Online (Sandbox Code Playgroud)