Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript inArray()返回-1,即使数组中存在元素_Javascript_Jquery - Fatal编程技术网

Javascript inArray()返回-1,即使数组中存在元素

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);

为什么不控制台.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); //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())