【发布时间】:2016-07-15 11:03:19
【问题描述】:
我有一个 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,但由于某种原因无法正常工作,我不知道为什么,有人知道这里有什么问题吗?
【问题讨论】:
-
我刚刚注意到 partner._id 返回的东西 '57857d93038aacd81ef3ad55' 不像 'ObjectId("57857d93038aacd81ef3ad55")' 也许这肯定是问题......检查数组上的重复元素时格式是否相同?
-
在向数组中插入值时,我是这样插入的:case_.partners.push(partner._id);所以它插入为 'ObjectId("57857d93038aacd81ef3ad55")' 但在比较合作伙伴时。_id 是 '57857d93038aacd81ef3ad55' 和 idk 为什么
-
请将您在 cmets 中分享的信息添加到您的问题中。
-
请提供一个 jsfiddle 或嵌入的脚本来解决问题,因为不清楚
ObjectId在这里是什么意思。不能直接比较ObjectId('some string')和'some string'的结果:一个是Object,另一个是字符串,结果总是false。
标签: javascript node.js lodash