我正在与inArray一起工作,我希望 yinz 能提供帮助。
我有 AJAX 可以从我的数据库中提取一些用户 ID。它是 JSON 编码的,并作为数组下拉。但是,当我尝试将值与数组匹配时,我总是得到-1。它永远不会匹配。
我已经发出了一系列警报,试图弄清楚发生了什么,但我终其一生都无法弄清楚为什么它不起作用。为了争论起见,假设它下拉的用户是#s 1、2和3。图像集合中表示的用户ID是1、2、3、4、5。
$.ajax({
dataType: "json",
url: "/* some url */",
success: function (players) {
$("#userpics img").each(function () {
var userid = $(this).data("userid");
alert (players); // 1,2,3
alert (userid); // 1
alert ("is array? " + Array.isArray(players)); // true
alert ("in array? " + $.inArray(userid, players)); // -1
alert ("in object? " + (userid in players)); // false
alert ("match? " + (userid == players[0])); // true
})
}
});
如您所见,被下拉的数组在第一个警报中显示为字符串,但在第三个警报中解析为数组。即使userid = 1
和 下拉的数据["1","2","3"]
仍然无法匹配inArray
。但是,当我匹配时,userid == players[0]
它匹配。
我完全被难住了。