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

Javascript 如何遍历数组数组并检查它们是否具有另一个数组的值+;前缀

Javascript 如何遍历数组数组并检查它们是否具有另一个数组的值+;前缀,javascript,arrays,Javascript,Arrays,我有两个数组,一个用于我称为服务器的对象,另一个用于客户端,如下所示: server_array = ['test1', 'test2', 'test3'] client_array = [['not_test1', 'test3'], ['test2', 'test4']] 我需要做的是,只返回客户端数组中没有前缀not_uuuafter匹配值的数组,以便澄清: 在client_数组的位置0中,我在其中有一个not_test1,它与server_数组中的test1相反,因此应该对该数组进行筛

我有两个数组,一个用于我称为服务器的对象,另一个用于客户端,如下所示:

server_array = ['test1', 'test2', 'test3']
client_array = [['not_test1', 'test3'], ['test2', 'test4']]
我需要做的是,只返回客户端数组中没有前缀not_uuuafter匹配值的数组,以便澄清: 在client_数组的位置0中,我在其中有一个not_test1,它与server_数组中的test1相反,因此应该对该数组进行筛选

因此,产出将是:

client_array = [['test2', 'test4']]

我目前尝试了一个使用map和filter的解决方案,但无法提供任何在数组中正确迭代的方法,我没有尝试执行普通for循环,因为我认为执行该循环会花费太多时间。

解决方案就这么简单。从结果数组中筛选出与谓词至少有一个匹配项的数组
server_array = ['test1', 'test2', 'test3'];
client_array = [['not_test1', 'test3'], ['test2', 'test4']];
client_array
    .filter(c => !c.some(i => i.startsWith('not_') &&
                 server_array.includes(i.replace(/^not_/, ''))));
e=>`非${e}`==元素

const result=client\u array.filter(array=>array.filter(
element=>server\u array.find(e=>`not\u${e}`==element)).length==0)
const server_数组=['test1','test2','test3']
const client_array=[['not_test1','test3',['test2','test4']]
const res=client\u array.filter(e=>//filter client\u array
e、 some(x=>//如果有任何项,则筛选子数组
!x.startsWith('not_uu')//检查子数组元素是否以“not_uu”开头
&&!server_array.includes(x.replace('not_','')//检查server_array是否包含未被否定的项
)
)

console.log(res)
在下面的代码中,您可以删除
.flat()
以不展平结果

server_数组=['test1','test2','test3']
客户端_数组=['not_test1','test3',['test2','test4']]

设res=client_array.filter(e=>!e[0].startsWith('not_')).flat()“我目前尝试了一种使用映射和过滤器的解决方案”…您能给我们演示一下吗?如果服务器阵列中有
not_test1
,您的预期结果是否为
[['not_test1','test3'],['test2','test4']
?这是完美的。非常感谢。