Javascript 检查两个数组中有多少个变量相同
假设我有两个数组。第一个是[12,32,65,32],第二个是[0,4,12,12] 我如何创建一个函数来查看每个数组的每个数字,并查看有多少个数组的数字彼此相等。这是我试图做的事情的要点: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
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]提示:这称为交集:第一个数组的值是否唯一?若并没有,你们算什么?那个么当你们找到匹配的时候,你们应该打破内部循环。这正是我所需要的。非常感谢。