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

Javascript 通过使用对象计算相同的数组对我不起作用。我错过什么了吗?

Javascript 通过使用对象计算相同的数组对我不起作用。我错过什么了吗?,javascript,Javascript,我的代码没有返回正确的计数,是有一个小错误还是我必须完全放弃这个策略 函数countidenticalarray(arr1、arr2、arr3、arr4){ var计数=0; var obj={}; var culmar=[…参数]; 对于(变量i=0;i1){ 计数++ } } 返回计数; } log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2. log(countidenticalarray([0,1,0],[0,1,2

我的代码没有返回正确的计数,是有一个小错误还是我必须完全放弃这个策略

函数countidenticalarray(arr1、arr2、arr3、arr4){
var计数=0;
var obj={};
var culmar=[…参数];
对于(变量i=0;i1){
计数++
}
}
返回计数;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0
log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
函数countidenticalarray(arr1、arr2、arr3、arr4){
var计数=0;
var obj={};
var culmar=[…参数];
对于(变量i=0;i1){
count++//我想这就是问题所在
}
}
返回计数;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0
log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
函数countidenticalarray(arr1、arr2、arr3、arr4){
var计数=0;
var obj={};
var culmar=[…参数];
对于(变量i=0;i1){
count++//我想这就是问题所在
}
}
返回计数;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0

log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
您的问题是,只有在找到第二个数组时才开始计数,因此您的计数总是少一个。首先在整个阵列上循环,然后选择大于1的最大值可能更容易:

函数countidenticalarray(arr1、arr2、arr3、arr4){
var计数=0;
var obj={};
var culmar=[…参数];
对于(变量i=0;i1&&c>count)count=c;
}
返回计数;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0

log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
您的问题是,只有在找到第二个数组时才开始计数,因此您的计数总是少一个。首先在整个阵列上循环,然后选择大于1的最大值可能更容易:

函数countidenticalarray(arr1、arr2、arr3、arr4){
var计数=0;
var obj={};
var culmar=[…参数];
对于(变量i=0;i1&&c>count)count=c;
}
返回计数;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0

log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
你的方法似乎有点过头了。另一种方法是在源阵列上使用过滤器。然后循环此数组并检查是否存在相同的数组

您可以先排除它不是同一个数组来检查这一点。然后检查长度是否相同,最后检查数组在同一位置是否有相同的元素

在代码中,它将如下所示:

函数countidenticalarray(…数组){
返回数组。筛选器((arr1)=>数组。某些((arr2)=>
arr1!==arr2&&
arr1.length==arr2.length&&
arr1.每个((项目,idx)=>arr2[idx]==项目)
)).长度;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0

log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
你的方法似乎有点过头了。另一种方法是在源阵列上使用过滤器。然后循环此数组并检查是否存在相同的数组

您可以先排除它不是同一个数组来检查这一点。然后检查长度是否相同,最后检查数组在同一位置是否有相同的元素

在代码中,它将如下所示:

函数countidenticalarray(…数组){
返回数组。筛选器((arr1)=>数组。某些((arr2)=>
arr1!==arr2&&
arr1.length==arr2.length&&
arr1.每个((项目,idx)=>arr2[idx]==项目)
)).长度;
}
log(countidenticalarray([0,0,0],[0,1,2],[0,0,0],[2,1,0]);//2.
log(countidenticalarray([0,1,0],[0,1,2],[0,2,0],[2,1,0]);//0

log(countidenticalarray([0,1,2],[0,1,2],[0,1,2],[2,1,0]);//3
您可以对数组进行比较,并将count indentical array添加到数组indentical count中。您可以在以下链接的问题上使用带阅读参考的比较数组:


您可以对数组进行比较,并将count indentical array添加到数组indentical count中。您可以将比较数组与读取re一起使用