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

Javascript 比较两个数组并返回重复项

Javascript 比较两个数组并返回重复项,javascript,arrays,compare,Javascript,Arrays,Compare,我有两个数组,我想比较它们并返回两个数组上的所有值,即使它们重复 const correctValue=['0','1']; 常量实际值=[ ['0','2','0','E','1','1','u','0','1','0',':','1'], ['0','0','1','u','0','}','1','l','1','1','1',', [x]、[k]、[e]、[2]、[2]、[z]、[8]、[s]、[d]、[2]、[5], [r',8',6',']',2',6',H',';',l',m','

我有两个数组,我想比较它们并返回两个数组上的所有值,即使它们重复

const correctValue=['0','1'];
常量实际值=[
['0','2','0','E','1','1','u','0','1','0',':','1'],
['0','0','1','u','0','}','1','l','1','1','1',',
[x]、[k]、[e]、[2]、[2]、[z]、[8]、[s]、[d]、[2]、[5],
[r',8',6',']',2',6',H',';',l',m','?'],
['Y','0','0','1','1','7','1','1','0','v','0','1']
];
不是最有效的解决方案,但它有效
需要指定是否只需要唯一值
最好的方法是编写可以使用的预期输出。试试这个:

arr1.filter(e => arr2.includes(e));
工作演示:


功能复制(arr1、arr2){
返回arr1.filter(e=>arr2.includes(e));
}
重复变量=[];
const correctValue=['0','1'];
常量实际值=[
['0','2','0','E','1','1','u','0','1','0',':','1'],
['0','0','1','u','0','}','1','l','1','1','1',',
[x]、[k]、[e]、[2]、[2]、[z]、[8]、[s]、[d]、[2]、[5],
[r',8',6',']',2',6',H',';',l',m','?'],
['Y','0','0','1','1','7','1','1','0','v','0','1']
];
actualValue.forEach(arr=>duplicates.push(duplicate(correctValue,arr)))
控制台日志(重复)尝试此解决方案:-

   <!DOCTYPE html>
<html>
<body>




<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
const correctValue = ['0', '1'];
const actualValue = [
    ['0', '2', '0', 'E', '1', '1', 'u', '0', '1', '0', ':', '1'],
    ['0', '0', '1', 'u', '0', '}', '1', 'l', '1', '1', '1', '˜'],
    ['x', 'k', 'e', '2', '|', '[', 'z', '8', 's', 'd', '2', '5'],
    ['r', '8', '6', ']', '2', '6', 'H', ';', 'Á', 'l', 'm', '?'],
    ['Y', '0', '0', '1', '1', '7', '1', '.', '0', 'v', '0', '1']
];

function myFunction() {
var same_values=[];
for(var i=0;i<correctValue.length;i++)
{
    for(var j=0;j<actualValue.length;j++)
   {    
        for(var k =0;k<actualValue[j].length;k++)
           {
             if(correctValue[i]==actualValue[j][k])
              {
                same_values.push(actualValue[j][k])
              }
            }
    }
}
console.log(same_values)
}
</script>

</body>
</html>

试试看

const correctValue=['0','1']; 常量实际值=[ ['0','2','0','E','1','1','u','0','1','0',':','1'], ['0','0','1','u','0','}','1','l','1','1','1',', [x]、[k]、[e]、[2]、[2]、[z]、[8]、[s]、[d]、[2]、[5], [r',8',6',']',2',6',H',';',l',m','?'], ['Y','0','0','1','1','7','1','1','0','v','0','1'] ]; 函数myFunction(){ var相同_值=[]; 对于(var i=0;i,您可以使用和来实现您正在做的事情。 在这种方法中,我过滤actualValue中的每一行并连接输出

const correctValue = ['0', '1'];
const actualValue = [
['0', '2', '0', 'E', '1', '1', 'u', '0', '1', '0', ':', '1'],
['0', '0', '1', 'u', '0', '}', '1', 'l', '1', '1', '1', '˜'],
['x', 'k', 'e', '2', '|', '[', 'z', '8', 's', 'd', '2', '5'],
['r', '8', '6', ']', '2', '6', 'H', ';', 'Á', 'l', 'm', '?'],
['Y', '0', '0', '1', '1', '7', '1', '.', '0', 'v', '0', '1']];

actualValue.reduce((arr, listData)=> arr.concat(listData.filter(data => correctValue.includes(data))),[])
console.log(output) //["0", "0", "1", "1", "0", "1", "0", "1", "0", "0", "1", "0", "1", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "1"]

请提供您到目前为止所做的工作。同时提供示例输入和预期输出您的意思是交集吗?那么您的问题可能已经在Duplicate下得到了回答。我只有这两个数组。我想创建一个新数组,其中包含“actualValue”数组中的所有“0”和“1”。它不会返回所有值。输出:[[ '0', '1' ], [ '0', '1' ], [], [], [ '0', '1' ] ]谢谢你的回答。我试过了,但没有记录任何东西。我已经用HTML模板更新了代码。请在HTML文档或任何编辑器中尝试。谢谢你的回答。我试过了,但在第一行,函数行上出现语法错误。抱歉,忘了命名函数,你可以再试一次
const correctValue = ['0', '1'];
const actualValue = [
['0', '2', '0', 'E', '1', '1', 'u', '0', '1', '0', ':', '1'],
['0', '0', '1', 'u', '0', '}', '1', 'l', '1', '1', '1', '˜'],
['x', 'k', 'e', '2', '|', '[', 'z', '8', 's', 'd', '2', '5'],
['r', '8', '6', ']', '2', '6', 'H', ';', 'Á', 'l', 'm', '?'],
['Y', '0', '0', '1', '1', '7', '1', '.', '0', 'v', '0', '1']];

actualValue.reduce((arr, listData)=> arr.concat(listData.filter(data => correctValue.includes(data))),[])
console.log(output) //["0", "0", "1", "1", "0", "1", "0", "1", "0", "0", "1", "0", "1", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "1"]