我有一个比较两个数组的函数。黑名单数组已全部为小写。
该功能始终返回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
答案 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;
}