值匹配时不返回true

时间:2019-10-04 19:08:20

标签: arrays node.js for-loop if-statement

所以我有这个功能。 InscripcionesDB是classesID的列表,而claseDB只是一个classID

async function verificarInscripcion(claseId, username) {

   var inscripcionesDB = await obtenerInscripciones(username);
   var claseDB = await Clase.findOne({ _id: claseId })


   for (let i = 0; i < inscripcionesDB.length; i++) {

       if (inscripcionesDB[i]._id == claseDB._id) {


           console.log(true);

       }

       console.log(false);

       console.log(inscripcionesDB[i]._id, 'CLASSESID');
       console.log(clasedb._id, 'CLASSID');

   }

}


所以问题是,有一个elementId匹配,但是输出始终为false。我在做什么错?这是输出:

5d959aa70d3ee404889d2b26 CLASSESID
5d82e4dc5770f32b50246657 CLASSID
false
5d959abc0d3ee404889d2b28 CLASSESID
5d82e4dc5770f32b50246657 CLASSID
false
5d82e4dc5770f32b50246657 CLASSESID // THIS ONE IS MATCHING
5d82e4dc5770f32b50246657 CLASSID //
false

1 个答案:

答案 0 :(得分:0)

您正在控制台记录以下内容:console.log(clasedb._id, 'CLASSID');,但您正在比较此:inscripcionesDB[i]._id == claseDB._id请尝试比较inscripcionesDB[i]._id == clasedb._id,但也请尝试控制台记录出什么是claseDB,因为我认为这是您真正感兴趣的是比较。您可能还希望将console.log('false')放在else块中,因为按原样,它将始终记录为false。