Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 数组中包含reurning false,即使数据中存在值_Javascript_Jquery - Fatal编程技术网

Javascript 数组中包含reurning false,即使数据中存在值

Javascript 数组中包含reurning false,即使数据中存在值,javascript,jquery,Javascript,Jquery,我试图检查id是否存在于id数组中 在console.log上,我可以看到如下内容: 3 //console.log(r_id) (2) [1, 3] //console.log(ids) false //console.log(ids.includes(r_id)); <pre>Illuminate\Support\Collection Object ( [items:protected] => Array ( [0]

我试图检查id是否存在于id数组中

在console.log上,我可以看到如下内容:

3  //console.log(r_id)

(2) [1, 3] //console.log(ids)

false //console.log(ids.includes(r_id));
<pre>Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 1
                    [name] => Data One
                    [distance] => 0
                )

            [1] => stdClass Object
                (
                    [id] => 3
                    [name] => Data Three
                    [distance] => 4.02
                )

        )

)
</pre>
console.log(ids.includes(+r_id));
即使数组中有
3
,我也找不到它为什么显示
false

更新: 完整代码:

var ids = [];
resp.data.map(function(e) {
    ids.push(e.id);
});
console.log(r_id);
console.log(ids);

console.log(ids.includes(r_id));


if(ids.includes(r_id) === false ){
    r_id = resp.data[0].id;
}

实际上,我正在尝试检查r\u id是否不在数组中,然后将new
r\u id
设置为数组的第一个元素,否则将旧r\u id保留为新r\u id

在服务器端:

打印(数据)


我发布这个答案只是为了说明这个问题已经解决了

我遵循了
Sreeram
的注释,并使其生效

我意识到这是由于字符串和数字比较的问题。这意味着我可以通过以下方法之一实现:

console.log(ids.includes(Number(r_id)));


你确定id是一个号码吗?尝试使用id。包括(+id);我无法重现这个问题。请包含真实案例,而不是控制台游戏。包含方法是严格匹配的,不过,请确保设置了id值。您是否确保数组中的id和您要搜索的id是同一类型的。数组中的id可能存储为字符串,而您搜索的id是一个数字(或者反过来)。为什么要分配一个数组,然后通过将
map
视为
forEach
来填充它?只需使用map,这就是它真正的用途:
letids=resp.data.map(e=>e.id)
done,
ids
现在是一个id值数组。但是,请记住,如果需要将它们转换为数字,请确保将它们转换为数字;如果需要将它们转换为字符串,请确保将它们转换为字符串。即使“他们可能已经是了”。确保,通过编写代码来确保。
console.log(ids.includes(Number(r_id)));