Javascript 在数据数组中查找正则表达式数组的元素
问题 我需要比较两个数组以获得所有缺少的元素。困难在于,有些值不区分大小写 数据 首先,我有两个阵列:Javascript 在数据数组中查找正则表达式数组的元素,javascript,arrays,regex,Javascript,Arrays,Regex,问题 我需要比较两个数组以获得所有缺少的元素。困难在于,有些值不区分大小写 数据 首先,我有两个阵列: const data = [ 'There', 'is', 'a', 'Word', 'there' ] // pure data const query = [ /^There$/i, /^is$/, /^a$/, /^Word$/, /^there$/ ] // RegEx for case sensitivity 第二个用于从数据库中获取一些数据,结果如下所
const data = [ 'There', 'is', 'a', 'Word', 'there' ] // pure data
const query = [ /^There$/i, /^is$/, /^a$/, /^Word$/, /^there$/ ] // RegEx for case sensitivity
第二个用于从数据库中获取一些数据,结果如下所示
数据库查询结果数据
现在我想知道结果中缺少原始数据的哪些元素
正如您所看到的,第一个元素应该不区分大小写,这意味着它存在于dbResult数组中
预期结果
[ 'a', 'Word' ]
Word
区分大小写->未在结果中找到结果中有
不区分大小写->找到[ 'a', 'Word' ]
我已经尝试过使用。差异(data,dbResult)
,但是使用该后,结果数组中也会出现
,不应该出现这种情况,因为它应该不区分大小写,并且在dbResult数组中存在一个现有的那里
这里有一种方法:
const missing = data.filter((word, i) => {
return !dbResult.some(res => res.match(query[i]))
})
// > ["a", "Word"]
这里有一个方法:
const missing = data.filter((word, i) => {
return !dbResult.some(res => res.match(query[i]))
})
// > ["a", "Word"]
为什么结果不符合“单词有”的顺序?我没有想到这一点。这就像我在应用程序中获取数据一样。但这对这个问题有关系吗?我想这取决于解决方案。您可以尝试。(数组、[值]、[比较器])的差异?为什么结果“word there is”不符合顺序?我没有想到这一点。这就像我在应用程序中获取数据一样。但这对这个问题有关系吗?我想这取决于解决方案。您可以尝试使用(数组、[值]、[比较器])进行差异处理。
?