Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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中的数组集进行比较_Javascript_Html - Fatal编程技术网

将数组与JavaScript中的数组集进行比较

将数组与JavaScript中的数组集进行比较,javascript,html,Javascript,Html,我想比较数组和数组集。 比如说, array 1 = [[1,2,3],[1,4,5]]; array 2 = [1,3,6,5,4]; 由于数组2中的元素1、4、5与数组1中的集合匹配,因此它应该返回true。展平第一个数组(解压嵌套数组)。然后对展平的数组和第二个数组进行一次比较。通过第一个数组进行映射,并针对每个数组对第二个数组进行映射。然后过滤掉所有空数组。如果生成的数组包含某些内容,则表示匹配的内容 const hasMatch = Boolean(array1.map(a =>

我想比较数组和数组集。 比如说,

array 1 = [[1,2,3],[1,4,5]];
array 2 = [1,3,6,5,4];
由于数组2中的元素1、4、5与数组1中的集合匹配,因此它应该返回true。

展平第一个数组(解压嵌套数组)。然后对展平的数组和第二个数组进行一次比较。通过第一个数组进行映射,并针对每个数组对第二个数组进行映射。然后过滤掉所有空数组。如果生成的数组包含某些内容,则表示匹配的内容

const hasMatch = Boolean(array1.map(a => intersect(a, array2)).filter(i => i.length).length)
展平第一个数组(解压缩嵌套数组)。然后对展平的数组和第二个数组进行一次比较。通过第一个数组进行映射,并针对每个数组对第二个数组进行映射。然后过滤掉所有空数组。如果生成的数组包含某些内容,则表示匹配的内容

const hasMatch = Boolean(array1.map(a => intersect(a, array2)).filter(i => i.length).length)

迭代数组并检查该值是否存在于另一个数组中

var集=[
[1, 2, 3],
[1, 4, 5]
],
有效=[1,3,6,5,4];
var processed=sets.map(set=>set.every(val=>valid.includes(val));

控制台日志(已处理)迭代您的数组并检查该值是否存在于另一个数组中

var集=[
[1, 2, 3],
[1, 4, 5]
],
有效=[1,3,6,5,4];
var processed=sets.map(set=>set.every(val=>valid.includes(val));
控制台日志(已处理)
var数组1=[
[1, 2, 3],
[1, 4, 5]
];
var array2=[1,3,6,5,4];
var isMatch=doesNestedArrayMatchArray(array1,array2);
函数DoesTestDarrayMatchArray(嵌套数组、bigArray){
var atlestonematch=false;
对于(变量i=0;i
var数组1=[
[1, 2, 3],
[1, 4, 5]
];
var array2=[1,3,6,5,4];
var isMatch=doesNestedArrayMatchArray(array1,array2);
函数DoesTestDarrayMatchArray(嵌套数组、bigArray){
var atlestonematch=false;
对于(变量i=0;iconsole.log(isMatch)
使用循环和循环。获取array1中的所有子数组,并检查array2中包含的每个子数组

function check(){
  var array1 = [[1,2,3],[1,4,5]];
  var array2 = [1,3,6,5,4];
  for(let arr of array1){
    let flag=true;
    for(let child of arr){
      if(array2.indexOf(child) < 0){
        flag = false;
        break;  // if one element not in array2, enter next loop.
      }
    }
    if(flag) return flag; // if got one child array elements all in array2, stop loop.
  }
}
函数检查(){
var array1=[[1,2,3],[1,4,5];
var array2=[1,3,6,5,4];
对于(让阵列的arr为1){
让flag=true;
为了(让arr的孩子){
if(数组2.indexOf(子项)<0){
flag=false;
break;//如果一个元素不在array2中,则输入下一个循环。
}
}
if(flag)return flag;//如果在array2中得到一个子数组元素,则停止循环。
}
}

使用循环和循环。获取array1中的所有子数组,并检查array2中包含的每个子数组

function check(){
  var array1 = [[1,2,3],[1,4,5]];
  var array2 = [1,3,6,5,4];
  for(let arr of array1){
    let flag=true;
    for(let child of arr){
      if(array2.indexOf(child) < 0){
        flag = false;
        break;  // if one element not in array2, enter next loop.
      }
    }
    if(flag) return flag; // if got one child array elements all in array2, stop loop.
  }
}
函数检查(){
var array1=[[1,2,3],[1,4,5];
var array2=[1,3,6,5,4];
对于(让阵列的arr为1){
让flag=true;
为了(让arr的孩子){
if(数组2.indexOf(子项)<0){
flag=false;
break;//如果一个元素不在array2中,则输入下一个循环。
}
}
if(flag)return flag;//如果在array2中得到一个子数组元素,则停止循环。
}
}

您可以迭代
array1
并在每个数字组上使用,作为条件,它可以与第二个数组一起使用,以获得相对较短的语法:

var数组1=[
[1, 2, 3],
[1, 4, 5]
];
var array2=[1,3,6,5,4];
var结果=[];
array1.forEach(函数(项、索引、数组){
if(item.every(x=>array2.includes(x))){
结果:推送(项目)
}
});

console.log(results)
您可以迭代
array1
并在每个数字组上使用,作为条件,它可以与第二个数组一起使用,以获得相对较短的语法:

var数组1=[
[1, 2, 3],
[1, 4, 5]
];
var array2=[1,3,6,5,4];
var结果=[];
array1.forEach(函数(项、索引、数组){
if(item.every(x=>array2.includes(x))){
结果:推送(项目)
}
});


console.log(results)
是否要展平数组1并确保其每个值也在数组2中?否,我要确保数组1中至少有一组数组在数组2中存在。因此循环和循环是否要展平数组1并确保其每个值也在数组2中?否,我想确保数组1中至少有一组数组存在于数组2中。所以循环和循环假设我展平数组1,数组1=1,2,3,4,5;我的数组2=1,3,4;这将成为现实。但那不会​ 匹配我的任何数组集。我所说的数组集是指(1,2,3)和(1,4,5)是2个集合,如果我的数组2中的元素匹配其中任何一个集合,则应该是真的。谢谢。我将检查是否超出我的数组1,数组1=1,2,3,4,5;我的数组2=1,3,4;这将成为现实。但那不会​ 匹配我的任何数组集。我所说的数组集是指(1,2,3)和(1,4,5)是2个集合,如果我的数组2中的元素匹配其中任何一个集合,则应该是真的。谢谢。我会检查是否应该使用每一个而不是forEach@epascarello是的,你是对的
这里的每个
都是很好的候选项。更新,谢谢@vol7ron,所以它返回假和真J?顺便说一句,代码很漂亮。谢谢。我查一下out@KoshVery是的,不确定想要的行为。对于所有值,可以确定在处理
时是否有任何值为真。一些(v=>v)
,或者是否要检索所有匹配集
已处理。map((v,i)=>v?i:null)。filter(v=>v!==null)。map(i=>set[i])
应该使用each而不是forEach@epascarello是的,你是对的<代码>每一个
都是一个好的坦诚