如何正确使用 indexOf() 和多个元素?

How do I correctly use indexOf() with several elements?

我有一个数组

var clickedImages = Session.get('clickedImages'); 
clickedImages = clickedImages.map( function(a) {return a.imageId;});

console.log("clickedImages Ids are: " ,...clickedImages);

产生:

clickedImages ID 为:TaTg6hf3Gok5NsWYp XzGxS3LDtJ4DrXSdc 8CdapJoeSxSScHKFs

var TotalOfallImageIds =  buyList.find().fetch().map(function(u) { return u._id; });
console.log(TotalOfallIds); 

产生:

["yzML7ZLvkWkjBBvq5", "XzGxS3LDtJ4DrXSdc", "TaTg6hf3Gok5NsWYp", "8CdapJoeSxSScHKFs"]

但是当我运行下面的代码时,为什么我得到一个错误?

(TotalOfallImageIds.indexOf(clickedImages) > -1); 

上面的代码产生:false

如何对多个元素正确使用 indexOf()?

因为 TotalOfallImageIds 中没有条目 === 数组 clickedImages 引用的点击图像 ID。没有数组永远 === 到字符串(因为当操作数不是同一类型时 === 的结果总是 false )。 indexOf 使用 === 进行比较。

.indexOf 用于比较一项,因此您需要遍历一个数组和 indexOf 与另一个

var allClicked = true;

for (var i = 0; i < clickedImages.length; i++) {
    var clickedImg = clickedImages[i];
    allClicked = TotalOfallImageIds.indexOf(clickedImg) > -1 && allClicked;    
}