JavaScript-include()-检查数组中是否包含多个元素

Jor*_*rge 3 javascript arrays include

希望能对您有所帮助。我的项目中有一个空数组,当按下某些按钮时会填充一个空数组(使用push())。我想知道数组中何时有一组特定的元素。

在下面的代码中,似乎3个元素都在数组中,所以它似乎工作了,因此它显示“是”。如果我取出最后一个元素(“ TR”),它将打印“ nope”。但是,如果我删除前两个元素中的任何一个,它将显示“是”。它似乎只关注include()函数中的最后一个元素。

有什么办法可以包含include()或类似的东西,检查是否所有元素都在我的数组中?请记住,数组可以包含更多元素,并且不会进行排序。

提前致谢。

var arr = ["TL", "TM", "TR"];

if (arr.includes("TL" && "TM" && "TR")){
    console.log("yes");
} else {
    console.log("nope");
}
Run Code Online (Sandbox Code Playgroud)

Gue*_*t01 5

问题出在您的if语句中,因为include()根据字符串参数返回一个布尔值。更好的方法是使用类似:

if(arr.includes("TL") && arr.includes("TM") && arr.includes("TR")) {
  console.log("yes");
}
Run Code Online (Sandbox Code Playgroud)

如果您的数组中有很多元素,我会建议更多类似的方法:

var flag = true;
for(i=0; i<arr.length; i++) {
  if(!arr.includes(arr[i])) {
    flag = false;
  }
}
if(flag) {
  console.log("yes");
}
Run Code Online (Sandbox Code Playgroud)