如何检查数组是否包含Javascript中的值

时间:2016-07-15 11:03:19

标签: javascript node.js lodash

我有一个json对象,它有一个数组属性'partners',如下所示:

    { 
    "_id" : ObjectId("578667b1bb14ca1c2773adaa"), 
    "customer" : null,  
    "created" : ISODate("2016-07-13T16:09:21.015+0000"), 
    "description" : "", 
    "subject" : "case 2", 
    "__v" : NumberInt(5), 
    "partners" : [
        ObjectId("57857d93038aacd81ef3ad55"), 
        ObjectId("57857d93038aacd81ef3ad56")
    ]
}

我想使用以下代码检查伙伴数组中是否已存在元素:

 _.includes(case_.partners, partner._id)

就是这样你知道我正在使用lodash,但由于某种原因不能正常工作,我不知道为什么,谁知道这里有什么问题?

1 个答案:

答案 0 :(得分:0)

我理解的是,您提供的partners示例是一个javascript对象,您应该尝试在Json中使用原始类型值。

您可以通过以下方式将ObjectId转换为String

ObjectId("578667b1bb14ca1c2773adaa") + '';

ObjectId("578667b1bb14ca1c2773adaa").toHexString();

Json对象应该是这样的:

{ 
"_id" : "578667b1bb14ca1c2773adaa", 
"customer" : null,  
"created" : "2016-07-13T16:09:21.015+0000", 
"description" : "", 
"subject" : "case 2", 
"__v" : 5, 
"partners" : [
    "57857d93038aacd81ef3ad55", 
    "57857d93038aacd81ef3ad56"
]}

所以解决方案是,将Javascript对象转换为Json对象,然后比较它们。