我有一个对象数组,在这些对象中,我有另一个array.我想通过向下钻取数组中的选中值来过滤结果.

我试过了MAP、Splice和Splice,我想我遗漏了一些东西.

[
    {
        "id": 1,
        "parent": "Parent 1",
        "parents": [
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": false
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": false
            }
        ]
    },
    {
        "id": 1,
        "parent": "Parent 2",
        "parents": [
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": false
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": false
            }
        ]
    }
]

我想要得到的结果是:

[
    {
        "id": 1,
        "parent": "Parent 1",
        "parents": [
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            }
        ]
    },
    {
        "id": 1,
        "parent": "Parent 2",
        "parents": [
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            },
            {
                "label": "New Item",
                "editable": true,
                "children": [],
                "checked": true
            }
        ]
    }
]

推荐答案

.map().filter()的组合应该可以完成这项工作:

const result = array.map((el) => ({
  ...el,
  parents: el.parents.filter((c) => c.checked) 
}));

console.log(result);

Javascript相关问答推荐

React Hooks中useState的同步问题

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

MongoDB中的引用

React 17与React 18中的不同setState行为

如何在Obsidian dataview中创建进度条

无法检测卡片重叠状态的问题

如何在 cypress 中使用静态嵌套循环

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

我创建了一个创建对象的函数,我希望从该函数创建的对象具有唯一的键.我怎么能做到这一点?

如何在ASP.NET中使用Google Charts API JavaScript将条形图标签显示为绝对值而不是负值

如何在使用rhandsontable生成表时扩展数字输入验证?

使用插件构建包含chart.js提供程序的Angular 库?

如何修复使用axios运行TSC index.ts时出现的错误?

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

ReferenceError:无法在初始化之前访问setData

如果对象中的字段等于某个值,则从数组列表中删除对象

我无法在Api Reaction本机上发出GET请求

在将元素追加到DOM之前,createElement()是否会触发回流?混淆abt DocumentFragment行为

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

MUI-TABLE:MUI表组件中交替行的不同 colored颜色 不起作用