根据条件从数组中删除对象数组

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


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


例如:过滤并获得“Attribute2”的结果“SubAttribute1”包含“tes”


所有的组合。

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

或“Attribute2”的“SubAttribute1”包含“tes”

或“Attribute3”的“SubAttribute2”包含“tes”


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


[

    {

        "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"

        }]

    }

]


吃鸡游戏
浏览 261回答 1
1回答

泛舟湖上清波郎朗

你可以做:const data = [{"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"}]}]/**  Combination of all.  eg: Filter and get result "Attribute1" which contains "sad"  OR "SubAttribute1" of "Attribute2" contains "tes"  OR "SubAttribute2" of "Attribute3" contains "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(result).as-console-wrapper { max-height: 100% !important; top: 0; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript