Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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_Arrays_For Loop - Fatal编程技术网

Javascript 检查两个数组中有多少个变量相同

Javascript 检查两个数组中有多少个变量相同,javascript,arrays,for-loop,Javascript,Arrays,For Loop,假设我有两个数组。第一个是[12,32,65,32],第二个是[0,4,12,12] 我如何创建一个函数来查看每个数组的每个数字,并查看有多少个数组的数字彼此相等。这是我试图做的事情的要点: let array1 = [12, 32, 65, 32]; let array2 = [0, 4, 12, 12]; var counter = 0; for (var i=0; i<= array1.length; i++) { //this is where I lose it for

假设我有两个数组。第一个是[12,32,65,32],第二个是[0,4,12,12]

我如何创建一个函数来查看每个数组的每个数字,并查看有多少个数组的数字彼此相等。这是我试图做的事情的要点:

let array1 = [12, 32, 65, 32];
let array2 = [0, 4, 12, 12];
var counter = 0;

for (var i=0; i<= array1.length; i++) {
  //this is where I lose it
  for (var j=0; i<= array2.length; j++) {
    if (array1[i] == array2[j]) {
      counter++;
      console.log(counter);
    }
  }
}
显然,上面的函数有望让您获得1作为日志,因为第一个数组只有一个12。我不知道如何使它只给出一个1的输出,一个12用于array1,两个用于array2。如果在数组1中有两个12,那么输出应该是2。

您可以使用get使数组只包含唯一的数字,并有效地测试一个数字是否在另一个数组中。然后,您只需迭代一个集合,并在另一个集合中增加计数:

设array1=[12,32,65,32]; 设array2=[0,4,12,12]; 函数countSamea1,a2{ /*定做*/ 让[s1,s2]=[新集合a1,新集合a2] 让计数=0 /*迭代计数*/ 对于s1的n{ 如果s2.0不算数++ } 返回计数 } console.LogCountSamarray1,阵列2 //重复次数越多-返回2,因为1和3是常见的
logcountSame[1,1,2,3,4],[1,3,3,6,7]提示:这称为交集:第一个数组的值是否唯一?若并没有,你们算什么?那个么当你们找到匹配的时候,你们应该打破内部循环。这正是我所需要的。非常感谢。