如何将数组添加到includes()javascript

如何将数组添加到includes()javascript,javascript,Javascript,我使用composedPath检测元素的外部,但如果元素超过1,我需要将它们全部添加到if()。也许在js中有其他的方法?包括(document.querySelectorAll(“.js开放用户”);但这不是工作 document.addEventListener("click", (event) => { let b1 = event .composedPath() .includes(document.querySelectorAl

我使用composedPath检测元素的外部,但如果元素超过1,我需要将它们全部添加到if()。也许在js中有其他的方法?包括(document.querySelectorAll(“.js开放用户”);但这不是工作

document.addEventListener("click", (event) => {
let b1 = event
        .composedPath()
        .includes(document.querySelectorAll(".js-open-user")[0]);

let b2 = event
        .composedPath()
        .includes(document.querySelectorAll(".js-open-user")[1]);

let b3 = event
        .composedPath()
        .includes(document.querySelectorAll(".js-open-user")[2]);

if (!b1 && !b2 && !b3) this.closeUser();
});

您可以使用
array.prototype.slice.call()
将节点列表转换为数组。 然后使用
Array.prototype.some()
检查是否至少有一个符合标准,如果没有,您可以使用
this.closeUser()
,这在我的示例中没有实现

document.addEventListener(“单击”,(evt)=>{
const openUsers=Array.prototype.slice.call(document.querySelectorAll('.js open user');
const composedPath=evt.composedPath();
如果(!openUsers.some(user=>composedPath.includes(user))){
//找不到打开的用户。。。
警报('没有匹配!');
返回;
}
警惕(‘匹配’);
});
hi
哎呀
测试

最后一个
您可以使用
array.prototype.slice.call()
将节点列表转换为数组。 然后使用
Array.prototype.some()
检查是否至少有一个符合标准,如果没有,您可以使用
this.closeUser()
,这在我的示例中没有实现

document.addEventListener(“单击”,(evt)=>{
const openUsers=Array.prototype.slice.call(document.querySelectorAll('.js open user');
const composedPath=evt.composedPath();
如果(!openUsers.some(user=>composedPath.includes(user))){
//找不到打开的用户。。。
警报('没有匹配!');
返回;
}
警惕(‘匹配’);
});
hi
哎呀
测试

最后一个
以及如何在if中使用?像这个if(交叉点)这个.closeNav?它是如何在if中使用的?像这样如果(交叉点)这个。关闭导航?
const nodes = document.querySelectorAll(".js-open-user");
const intersection = event.composedPath().filter(n => nodes.includes(n));