[英]findIndex return -1, but it should return 0
console.log(books[0]._id);
console.log(user.bookRecomendations);
const index = user.bookRecomendations.findIndex( x => x.bookId === books[0]._id);
console.log(index);
它在控制台中返回:
5b0685e238e2e50ba4c10d49
[{"bookId":"5b0685e238e2e50ba4c10d49","rating":900},{"bookId":"5b0949a3b7c9170be08aa6b5","rating":900},{"bookId":"5b0708dbf1079d0dfa98489b","rating":900},{"bookId":"5b0948947c110b0ba9069327","rating":1600}]
-1
作为user.bookRecomendations [0] .bookId具有与book [0] ._ id相同的值,它应该返回0,但仍然不返回,并且由于不匹配而显示-1。 有什么建议如何修复它并获取bookId等于books [0] ._ id的user.bookRecomendations索引吗?
编辑:
console.log('['+books[0]._id+']');
console.log('['+user.bookRecomendations[0].bookId+']’);
console.log(books[0]._id===user.bookRecomendations[0].bookId);
返回:
[5b0685e238e2e50ba4c10d49]
[5b0685e238e2e50ba4c10d49]
false
好的,类型有关,books [0] ._ id和user.bookRecomendations [0] .bookId都是对象。 所以比较
books[0]._id.toString() === user.bookRecomendations[0].bookId.toString()
完美运作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.