如何正确使用 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;
}
我有一个数组
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;
}