Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用every()检查一个数组是否包含另一个数组的所有元素_Javascript_Arrays - Fatal编程技术网

Javascript 使用every()检查一个数组是否包含另一个数组的所有元素

Javascript 使用every()检查一个数组是否包含另一个数组的所有元素,javascript,arrays,Javascript,Arrays,我有一个数组,每次单击都会更改。每次单击时,我都需要确定数组是否包含一组数组上的任何序列。这是我正在与该阵列进行比较的给定阵列集: const combos = [ [0, 5, 3], [0, 8, 2], [0, 0, 1], [1, 1, 2], ]; 这就是我试图比较它们的方式: const playerCombo = ( arr ) => { //First sort the Array const sor

我有一个数组,每次单击都会更改。每次单击时,我都需要确定数组是否包含一组数组上的任何序列。这是我正在与该阵列进行比较的给定阵列集:

const combos = [
      [0, 5, 3],
      [0, 8, 2],
      [0, 0, 1],
      [1, 1, 2],
];
这就是我试图比较它们的方式:

const playerCombo = ( arr ) => {
      //First sort the Array
      const sorted = arr.sort();

      //Initialize the hasWon variable
      let hasWon = '';

      //For each combo Array...
      for( let combo of boardCtrl.combos ){
        if( sorted.length > 2 ) {
          hasWon = combo.every((e)=> sorted.includes(e));
        }
      }

      return hasWon;

    }

但是结果不是很一致,只是有时有效。

很难说你期望什么:

const boardCtrl={
组合键:[[0,5,3],[0,8,2],[0,0,1],[1,1,2]]
}
常量testArray=[[0,0,1]、[0,8,2]、[1,1,2]、[0,5,3];
常量shouldFail=[[0,0,1]、[0,8,2]、[1,7,2]、[0,5,3];
const playerCombo=数组=>{
const bc=boardCtrl.combos;
设l=bc.length,n=0;
如果(array.length!==l){
返回false;
}
for(让bc组合){
对于(数组的a){
如果(a.every(e=>combo.includes(e)))n++;
}
}
返回n==l;
}
控制台日志(playerCombo(testArray));

日志(playerCombo(shouldFail))
haswen
正在覆盖,因此循环结束。您可能只想
if(sorted.length>2){if(!combo.every((e)=>sorted.includes(e)){return false;}}}返回true请包含示例输入和输出。如果要比较每个成员是否包含在单独的数组中,那么对数组进行排序有什么意义?检查是否有零,而不是检查是否有两个零。因此,如果数组A是
[0,0,5]
,它将通过
[0,5,3]
传递,比较原语值数组很简单,但我关心排序。你很可能会把它编成字符串,比较一下,然后就到此为止。这只适用于组合不允许以随机顺序排列的情况,因此。。。是吗?