对象输出& typeof()相同,但==操作数不能与findIndex()

时间:2018-01-05 17:30:46

标签: javascript mongoose

我正试图了解这里的情况。我正在使用.findIndex()搜索匹配的ID(我正在使用mongoose)。尽管具有完全相同的输出和类型,并且使用==我仍然返回false。但是,如果我使用.toString()转换它们都可以。不幸的是typeof没有给我任何更多的信息,而不是两个都是对象。

有谁知道为什么会这样?

代码

moduleids = Object.values(user.modules.map(a=>[a.id]));
moduleindex = moduleids.findIndex(function(e) {
    console.log("e: " + e);
    console.log("module._id: " + module._id);
    console.log("typeof module._id: " + typeof(module._id));
    console.log("typeof e: " + typeof(e));
    return(e == module._id);
});

user.modules架构的一部分。

modules: [ {
    id: { type: Schema.Types.ObjectId, ref: 'Modules' },
    modality: { type: String },
    selected: { type: Boolean, default: false }
} ]

module变量派生自模块架构。

输出

e: 5a4ee5d7e10c0a20dcb630e0
module._id: 5a4ee5d7e10c0a20dcb630e0
typeof module._id: object
typeof e: object
false   // This only works if converted to string return(e.toString() == module._id.toString());.

0 个答案:

没有答案