Javascript,检查输入是否在数组中

时间:2015-12-16 12:34:17

标签: javascript arrays if-statement for-loop

我是javascript的新手并且在使用数组方面苦苦挣扎。

我正在尝试检查用户输入值是否在我声称为fruits的数组中。如果是我想执行代码。如果不是,我想要显示警报。我尝试使用

  

的instanceof

检查值的方法,但代码不执行任何if else语句。任何想法为什么?

$("#submit-btn").bind("click", function() {

           var comment = $("#comments");
            var commentValue = $.trim(comment.val());
            var index;
            var fruits = ["Banana", "Orange", "Apple", "Mango"];
            for (index = 0; index < fruits.length; index++) {
                text += fruits[index];


            if (commentValue.length === 0) {
                alert('Comments are required to continue!');
            } 
            else if (commentValue instanceof fruits){
                execute code
                });
            }
            else {
                alert('not a valid fruit');
            }

            return false;
            }
        });

2 个答案:

答案 0 :(得分:0)

你的第一个if应该在for循环之外。

在里面你只需将else if改为

if(commentValue === fruits[index])

然后在for循环之后将else中的代码移出。

更简单的方法是:

if (commentValue.length === 0) {
        alert('Comments are required to continue!');
       return false;
} 

if(fruits.indexOf(commentValue) > -1) {
    execute code
    return false;
}

alert('not a valid fruit');
return false;

答案 1 :(得分:0)

尝试indexOf(),如果indexOf返回大于-1的任何值,则匹配

像这样:

else if (commentValue.indexOf(fruits[index]) > -1){