函数总是返回true

时间:2015-05-06 23:25:13

标签: javascript jquery

我有一个比较两个数组的函数。黑名单数组已全部为小写。

该功能始终返回true,我不明白为什么。

function flagProfanity(words) {
    var found = false;
    $.each(words, function(key, word){
        if ($.inArray(word.toLowerCase, blacklist) == -1){
            found = true;
        }
    });
    return found;   
}

编辑,这些是直接从单词和黑名单的审查版本提醒。

k,just,wondering,how,this,mod,thing,works

swear, profanity, bad, word, more, profanity

2 个答案:

答案 0 :(得分:1)

只有在阵列完全相等的情况下才会返回false。如果至少一个元素(word)不在数组中,found将设置为true,这就是它始终返回的原因{ {1}}。

答案 1 :(得分:0)

inArray如果指针,则返回-1,因此如果inArray返回的值为&#39},则您希望将found设置为true。 s大于-1。

另外,正如Bergi在评论中指出的那样,您要调用toLowerCase()这是一个函数,而不是toLowerCase,这是一个属性。

if ($.inArray(word.toLowerCase(), blacklist) > -1){
  found = true;
}