检查一个数组是否包含JavaScript中另一个数组的2个或更多元素
我在这里找到了一个与我的问题类似的答案:检查一个数组是否包含JavaScript中另一个数组的任何元素,不幸的是,OP会询问是否有任何元素等于另一个数组中的任何元素 在我的例子中,我实际上需要检查检查一个数组是否包含JavaScript中另一个数组的2个或更多元素,javascript,arrays,filter,Javascript,Arrays,Filter,我在这里找到了一个与我的问题类似的答案:检查一个数组是否包含JavaScript中另一个数组的任何元素,不幸的是,OP会询问是否有任何元素等于另一个数组中的任何元素 在我的例子中,我实际上需要检查两个或多个元素是否等于另一个数组中的两个或多个元素。否则,它应该返回false 我尝试了类似于上述问题的方法,但我无法使其达到X个匹配数的目标 Array.filter(el => el.colors.some(x => colors2.includes(x))) 这仅适用于任何数量的匹配
两个或多个元素是否等于另一个数组中的两个或多个元素
。否则,它应该返回false
我尝试了类似于上述问题的方法,但我无法使其达到X个匹配数的目标
Array.filter(el => el.colors.some(x => colors2.includes(x)))
这仅适用于任何数量的匹配…首先,您可以使用
array#filter
结合array#includes
在arr2中查找arr1中的所有项目
Array.filter(el => el.colors.some(x => colors2.includes(x)))
然后检查结果的长度
让arr1=[1,2,3];
设arr2=[2,3];
让结果=arr1.filter(v1=>arr2.includes(v1));
console.log(result.length>=2)代码>如果这有用的话,我有下面这样的工作方式。
以示例形式进行了一些修改
我会和“Nguy”一起去ễn Văn Phong回答。此外,如果您想保持代码整洁,我会使用下划线库或类似的工具。这只是我个人的喜好:)
只需检查结果的.length
,就可以得到匹配数。显示数组和预期结果你能显示一些代码吗@VLAZ@Aviale您的代码:Array.filter(el=>el.colors.some(x=>colors2.includes(x))
my代码:Array.filter(el=>el.colors.some(x=>colors2.includes(x))。长度
有用,但不起作用。必须使用另一种筛选方法,而不是某些筛选方法