我无法弄清楚我做错了什么。为什么这不是真的?我缺少什么
Aspnet_wp.exe
答案 0 :(得分:0)
您需要将第一个元素更改为字符串,以便您搜索的值和数组中的值是相同的数据类型
var suppliers = ["13419", "12999", "13992"];
var id = 13419;
$.inArray(String(id), suppliers) != -1 ? console.log('duplicate') : console.log('no dupe');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
其他选项是将数组中的每个元素更改为数字
var suppliers = ["13419", "12999", "13992"].map(e => {return parseInt(e)});
var id = 13419;
$.inArray(id, suppliers) != -1 ? console.log('duplicate') : console.log('no dupe');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:0)
你的id是整数
var id = 13419;
而你的arry包含
字符串 var suppliers = ["13419", "12999", "13992"];
所以按照
字符串给出它 var id = "13419";
答案 2 :(得分:0)
jQuery使用===
来确定项目是否相等。因此它采用帐户变量类型,因此您必须在检查之前更改ID类型:
if ($.inArray(id.toString(), suppliers) != -1) {
console.log('duplicate');
} else {
console.log('no dupe');
}
或创建自己的功能:
function customInArray(needle, heystack) {
for (item in heystack) {
if (needle == heystack[item]) {
return item;
}
}
return -1;
}
答案 3 :(得分:0)