尽管数组中存在元素,为什么为什么让.indexOf()返回-1?

时间:2019-01-14 15:22:22

标签: javascript express mongoose

“地址”是一个对象数组,每个对象元素都有特定的_id。
我试图在idsArray(这是数组中所有这些对象元素的ID的数组)中找到 .indexOf(req.params.a_id),但是 .indexOf()返回-1 尽管idsArray中存在_id。

How to declare MDSYS.Sdo_Geometry in c#

3 个答案:

答案 0 :(得分:1)

我认为.indexOf最常用于字符串中,您可以通过以下方式获取它:

idsArray.filter(x => x.id == req.params.a_id)

这将返回带有匹配元素的数组。

参考:https://www.w3schools.com/jsref/jsref_filter.asp

更新: 找到可以使用的索引

idsArray.findIndex(x=> x == req.params.a_id)

答案 1 :(得分:1)

要检查数组中是否存在元素,可以使用some方法:

idsArray.some(id => id === req.params.a_id)

,如果ID存在,则返回truefalse

答案 2 :(得分:0)

检查变量的类型。 也许在您的情况下,req.params.a_id是字符串(“ 1”)?