Javascript 如何基于其他数组筛选具有嵌套数组的对象数组

Javascript 如何基于其他数组筛选具有嵌套数组的对象数组,javascript,arrays,filtering,Javascript,Arrays,Filtering,我有一个对象数组。我希望筛选只包括测试数组中的所有元素都存在于原始数组中的对象 示例代码 const cards = [ { id: "1", name: "J", tag: ["red", "yellow", "blue", "white"], size: ["small", &quo

我有一个对象数组。我希望筛选只包括测试数组中的所有元素都存在于原始数组中的对象

示例代码

const cards = [
    {
        id: "1",
        name: "J",
        tag: ["red", "yellow", "blue", "white"],
        size: ["small", "medium"],
    },
    {
        id: "2",
        name: "S",
        tag: ["red", "green", "black"],
        size: ["small", "medium"],
    },
    {
        id: "3",
        name: "K",
        tag: ["green", "purple", "brown", "white"],
        size: ["large"],
    }
测试阵列

const sizeArray = ["medium", "small"];
const tagArray = ["red", "black"];
我希望过滤后的数组只包含第二个对象

我试过使用filter,includes,但没有找到类似问题的其他答案


非常感谢。

我猜这可能是您需要的:

const卡=[
{
id:“1”,
姓名:“J”,
标签:[“红色”、“黄色”、“蓝色”、“白色”],
尺寸:[“小型”、“中型”],
},
{
id:“2”,
名称:“S”,
标签:[“红色”、“绿色”、“黑色”],
尺寸:[“小型”、“中型”],
},
{
id:“3”,
名称:“K”,
标签:[“绿色”、“紫色”、“棕色”、“白色”],
大小:[“大”],
}
];
const sizeArray=[“中”、“小”];
常量标记数组=[“红色”、“黑色”];
//过滤卡阵列
常量填充=卡片。过滤器(ch=>{
//根据您的需要,我们有各种尺寸的尺码
//tagsArray中的每个标签
返回sizerray.every(大小=>ch.size.includes(大小))
&&tagArray.every(tag=>ch.tag.includes(tag));
});
控制台日志(填充);

我猜这可能是您需要的:

const卡=[
{
id:“1”,
姓名:“J”,
标签:[“红色”、“黄色”、“蓝色”、“白色”],
尺寸:[“小型”、“中型”],
},
{
id:“2”,
名称:“S”,
标签:[“红色”、“绿色”、“黑色”],
尺寸:[“小型”、“中型”],
},
{
id:“3”,
名称:“K”,
标签:[“绿色”、“紫色”、“棕色”、“白色”],
大小:[“大”],
}
];
const sizeArray=[“中”、“小”];
常量标记数组=[“红色”、“黑色”];
//过滤卡阵列
常量填充=卡片。过滤器(ch=>{
//根据您的需要,我们有各种尺寸的尺码
//tagsArray中的每个标签
返回sizerray.every(大小=>ch.size.includes(大小))
&&tagArray.every(tag=>ch.tag.includes(tag));
});
控制台日志(填充);

.filter
两次调用
.each
sizerray.each(s=>obj.size.includes(s))&&(与tagArray相同)
.filter两次调用
.each
sizerray.each(s=>obj.size.includes(s))&(与tagArray相同)