繁体   English   中英

findIndex返回-1,但应返回0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM