首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于条件从数组中删除对象数组

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

Stack Overflow用户
提问于 2019-10-24 03:02:45
回答 1查看 48关注 0票数 1

我有如下所示的json数组,我需要基于以下条件进行筛选

过滤并得到结果"Attribute1“,其中包含”悲伤“

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

所有的组合。

过滤并得到结果"Attribute1“,其中包含”悲伤“

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

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

注:可通过纯javascript或提交(首选)。

代码语言:javascript
复制
[
    {
        "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"
        }]
    }
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 03:51:17

你可以:

代码语言:javascript
复制
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)
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58533565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档