Javascript 这个内置NodeJs的id比较算法有什么问题?
我想检查项目列表中是否包含id。 项目是对象,其中一个字段是Javascript 这个内置NodeJs的id比较算法有什么问题?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我想检查项目列表中是否包含id。 项目是对象,其中一个字段是id 如果出于检查目的记录ID,则结果如下: 60b23d56c60fdc3610a585f0 60b2443ac60fdc3610a585f5 false 60b24424c60fdc3610a585f4 60b2443ac60fdc3610a585f5 false 60b2443ac60fdc3610a585f5 60b2443ac60fdc3610a585f5 false // these items are equals but
id
如果出于检查目的记录ID,则结果如下:
60b23d56c60fdc3610a585f0 60b2443ac60fdc3610a585f5 false
60b24424c60fdc3610a585f4 60b2443ac60fdc3610a585f5 false
60b2443ac60fdc3610a585f5 60b2443ac60fdc3610a585f5 false // these items are equals but it still shows me false
60b2444bc60fdc3610a585f6 60b2443ac60fdc3610a585f5 false
60b24466c60fdc3610a585f7 60b2443ac60fdc3610a585f5 false
我使用mongoDB和NodeJs
这是我的代码:
let permissions = await PermissionModel.find({})
.where("isDelete")
.equals(false);
let rolePermissionInfo = await RolePermissionModel.findOne({ roleId: roleId, isDelete: false })
.populate({
path: 'roleId',
model: 'Role',
select: 'name'
})
.populate({
path: 'permissionId',
model: 'Permission',
select: 'name id parentId'
})
model.roleId = rolePermissionInfo.roleId.id;
model.roleName = rolePermissionInfo.roleId.name;
permissions.forEach((permission: any) => {
rolePermissionInfo.permissionId.forEach((elment: any) => {
model.claims.push({
id: permission._id,
isChild: false,
parentId: permission.parentId,
selected: element._id === permission._id ? true : false,
name: permission.name,
})
});
});
有什么问题吗?提前感谢它们很可能是不同的
类型
,具有相同的值
。将它们转换为相同类型后,尝试进行比较
selected: elment._id.toString() === permission._id.toString(),
它们很可能是不同的
类型
,具有相同的值
。将它们转换为相同类型后,尝试进行比较
selected: elment._id.toString() === permission._id.toString(),
也许还想修剪它们?也许还想修剪它们?