Javascript js-bug/不需要的行为:array indexOf()函数也会查看数字本身

Javascript js-bug/不需要的行为:array indexOf()函数也会查看数字本身,javascript,arrays,Javascript,Arrays,我有一个数组,其中包含用户的UID列表,允许(登录的)用户查看相关信息,例如[2,22,50]。这是数组“rechten” 为了过滤允许此人看到的信息,我对每个人(有一个UID)做了一个for循环,并确定登录用户是否可以通过以下方式看到它: if(rechten.indexOf(factuur["VERKOPER_UID"]) != -1){ return true; } else { return false; } 问题是,这不仅对2、22和50(根据需要)返回true,而且

我有一个数组,其中包含用户的UID列表,允许(登录的)用户查看相关信息,例如[2,22,50]。这是数组“rechten”

为了过滤允许此人看到的信息,我对每个人(有一个UID)做了一个for循环,并确定登录用户是否可以通过以下方式看到它:

if(rechten.indexOf(factuur["VERKOPER_UID"]) != -1){
    return true;
} else {
    return false;
}
问题是,这不仅对2、22和50(根据需要)返回true,而且对5(因为5是50的一部分)也返回true

我还尝试使用函数rechten.includes()代替rechten.indexOf,但也没有得到预期的结果

如果数组中有“50”而不是“5”,我该如何比较?这件事我哪里做错了

编辑:

控制台日志:

[50]
1
-1
string 
object

script-klanten-overview-2.js?ver=4:172 Uncaught TypeError: Cannot read property 'indexOf' of undefined
    at ...
    at Array.filter (native)
    at prepareDataKlanten (...)

似乎
rechten
是一个字符串文本,因此它不是
包含
数组.prototype.indexOf()
。只需使用
console.log(type of rechten)
重新检查,然后如何解决这个问题?我对js相对来说比较陌生,但我确实或多或少地理解了问题所在,如果blocktypeof Recten确实是字符串的话,那么在获取JavaScript对象之前使用stry
recten=JSON.parse(recten)
。在解析函数之后,它变成了对象,但得到了另一个错误;未捕获的TypeError:无法读取未定义的属性“indexOf”。请显示您正在使用的确切代码
[50]
1
-1
string 
object

script-klanten-overview-2.js?ver=4:172 Uncaught TypeError: Cannot read property 'indexOf' of undefined
    at ...
    at Array.filter (native)
    at prepareDataKlanten (...)