jQuery告诉我某个东西在数组中,而它不是't

jQuery telling me something is in an array when it isn't

本文关键字:告诉我 数组 jQuery      更新时间:2023-09-26

基本上,如果在candidates_ignore数组中找到候选id,则应将其添加到拒绝列表中,否则,它们将被添加到包含列表中

除了id 33之外,所有的候选人都在名单上。但由于某种原因,id为33的被包括在内,而不是被拒绝

请参阅屏幕截图

正如您在控制台中看到的,33不在忽略列表中,因此应该包括在内。但无论出于什么原因,23被列入忽略名单??

代码:

            if($.inArray(cand.id, candidates_ignore)) {
                $results_rejected.append(output);
            }
            else {
                $results_included.append(output);
            }

完整代码:

http://pastebin.com/mDQksz5r

来自jQuery网站:

$.inArray()方法类似于JavaScript的原生.indexOf()方法,因为当找不到匹配项时,它会返回-1。如果数组中的第一个元素与值匹配,$.inArray()将返回0。

因为JavaScript将0视为松散地等于false(即0==false,但0!==false),所以要检查数组中是否存在值,需要检查它是否不等于(或大于)-1。

数值之间的比较是严格的。以下将返回-1(未找到),因为正在字符串数组中搜索一个数字:

if($.inArray(cand.id, candidates_ignore)<0) {
    $results_rejected.append(output);
}
else {
    $results_included.append(output);
}

https://api.jquery.com/jQuery.inArray/

相关文章: