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

Javascript 基于条件从数组中删除对象数组

Javascript 基于条件从数组中删除对象数组,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有如下json数组,需要根据以下条件进行过滤 例如:过滤并获得结果“Attribute1”,其中包含“sad” 例如:筛选并获取“Attribute2”的结果“SubAttribute1”包含“tes” 所有的结合 例如:过滤并获取结果“Attribute1”,其中包含“sad” 或“Attribute2”的“SubAttribute1”包含“tes” 或“Attribute3”的“SubAttribute2”包含“tes” 注意:可以通过纯javascript或lodash(首选)完成 你可

我有如下json数组,需要根据以下条件进行过滤

例如:过滤并获得结果“Attribute1”,其中包含“sad”

例如:筛选并获取“Attribute2”的结果“SubAttribute1”包含“tes”

所有的结合
例如:过滤并获取结果“Attribute1”,其中包含“sad”
或“Attribute2”的“SubAttribute1”包含“tes”
或“Attribute3”的“SubAttribute2”包含“tes”

注意:可以通过纯javascript或lodash(首选)完成

你可以做:

const data=[{“Attribute1”:[“sada”,“dasa”],“Attribute2”:[{“SubAttribute1”:“Test”,“SubAttribute2”:“sdasd”},{“SubAttribute1”:“sdsadas”,“SubAttribute2”:“sdsad”}],“Attribute3”:[{“SubAttribute1”:“sdasd”,“SubAttribute2”:“dsa”},{“SubAttribute1”:“sadasd”;“SubAttribute2”:“sadas”},”,“SubAttribute2”:“sadas”{“ass[{“子属性1”:“dsad”,“子属性2”:“xcxc”},{“子属性1”:“erew”,“子属性2”:“ERER”}],“属性3”:[{“子属性1”:“SDSDDASD”,“子属性2”:“sdsa”},{“子属性1”:“das”,“子属性2”:“sad”}]
/**
所有的结合。
例如:过滤并获得结果“Attribute1”,其中包含“sad”
或“Attribute2”的“SubAttribute1”包含“tes”
或“Attribute3”的“SubAttribute2”包含“tes”
*/
const result=data.filter(
obj=>/sad/.test(obj.Attribute1.join(','))
||obj.Attribute2.find(obj=>/tes/.test(obj.SubAttribute1))
||obj.Attribute3.find(obj=>/tes/.test(obj.SubAttribute2))
)
console.log(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
您可以执行以下操作:

const data=[{“Attribute1”:[“sada”,“dasa”],“Attribute2”:[{“SubAttribute1”:“Test”,“SubAttribute2”:“sdasd”},{“SubAttribute1”:“sdsadas”,“SubAttribute2”:“sdsad”}],“Attribute3”:[{“SubAttribute1”:“sdasd”,“SubAttribute2”:“dsa”},{“SubAttribute1”:“sadasd”;“SubAttribute2”:“sadas”},{“ass子属性1:“dsad”,“子属性2:“xcxc”},{“子属性1:“erew”,“子属性2:“ERER”}],“Attribute3:[{“子属性1:“SDSDSDAASD”,“子属性2:“sdsa”},{“子属性1:“das”,“子属性2:“sad”}]
/**
所有的结合。
例如:过滤并获得结果“Attribute1”,其中包含“sad”
或“Attribute2”的“SubAttribute1”包含“tes”
或“Attribute3”的“SubAttribute2”包含“tes”
*/
const result=data.filter(
obj=>/sad/.test(obj.Attribute1.join(','))
||obj.Attribute2.find(obj=>/tes/.test(obj.SubAttribute1))
||obj.Attribute3.find(obj=>/tes/.test(obj.SubAttribute2))
)
console.log(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
[
    {
        "Attribute1": [
            "sada",
            "dasa"
        ],
        "Attribute2": [{
            "SubAttribute1": "Test",
            "SubAttribute2": "sdasd"
        }, {
            "SubAttribute1": "sdsadsadas",
            "SubAttribute2": "sdsad"
        }],
        "Attribute3": [{
            "SubAttribute1": "sdasd",
            "SubAttribute2": "dsa"
        }, {
            "SubAttribute1": "sadasd",
            "SubAttribute2": "sadas"
        }]
    },
    {
        "Attribute1": [
            "ass",
            "sd"
        ],
        "Attribute2": [{
            "SubAttribute1": "dsad",
            "SubAttribute2": "xcxc"
        }, {
            "SubAttribute1": "erew",
            "SubAttribute2": "errer"
        }],
        "Attribute3": [{
            "SubAttribute1": "sdsdaasd",
            "SubAttribute2": "sdsa"
        }, {
            "SubAttribute1": "das",
            "SubAttribute2": "sad"
        }]
    }
]