Javascript inArray()返回-1,即使数组中存在元素
为什么不控制台.log$.inArray\u photoId,photoId;返回1?看起来photoId是一个数字,但photoId包含字符串。试试这个:Javascript inArray()返回-1,即使数组中存在元素,javascript,jquery,Javascript,Jquery,为什么不控制台.log$.inArray\u photoId,photoId;返回1?看起来photoId是一个数字,但photoId包含字符串。试试这个: $.post('service.php?getPhotos', function(data){ var photoIds = []; $.each(data, function(){ photoIds.push(this.id); }); console.log(_photoId);
$.post('service.php?getPhotos', function(data){
var photoIds = [];
$.each(data, function(){
photoIds.push(this.id);
});
console.log(_photoId); //7962669392
console.log(photoIds); //["7980686507", "7962669392", "7962163506"]
console.log($.inArray(_photoId, photoIds)); //-1
});
我可以想象字符串对整数。不同的类型意味着inArray不认为它们是相同的。请确保您使用的是字符串而不是整数,这应该可以使用。这是因为$.inArray函数也会考虑该类型。它不会说整数与字符串相同。本手册的第一条评论中也解释了这一点 可以使用_photoId.toString获取值的字符串表示形式 还要注意,ECMAScript Javascript有一个名为的本机函数,其作用与jQuery函数完全相同:
$.inArray(''+ _photoId, photoIds)
photoIds.indexOf(_photoId.toString())