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

Javascript 如何筛选对象数组的子对象,然后返回更新子对象的父对象?

Javascript 如何筛选对象数组的子对象,然后返回更新子对象的父对象?,javascript,reactjs,filter,Javascript,Reactjs,Filter,我试图通过一个对象数组筛选它的子对象,然后更新子对象并返回具有更新子对象的父对象 对象的示例数组: [ { "id": 1, "name": "group1", "users": [ { "id": 1, "name": "Mike" }, { "id": 2,

我试图通过一个对象数组筛选它的子对象,然后更新子对象并返回具有更新子对象的父对象

对象的示例数组:

[
    {
        "id": 1,
        "name": "group1",
        "users": [
            {
                "id": 1,
                "name": "Mike"
            },
            {
                "id": 2,
                "name": "Steve"
            },
            {
                "id": 3,
                "name": "John"
            }
        ]
    },
    {
        "id": 2,
        "name": "group2",
        "users": [
            {
                "id": 4,
                "name": "Phill"
            },
            {
                "id": 5,
                "name": "Joe"
            },
            {
                "id": 6,
                "name": "Dominik"
            }
        ]
    }
]
我在React中有一个输入,有人可以输入一个用户的名字,然后我只想显示具有该名字的用户,同时保留他们所在的组

例如,如果输入为“Mike”,我希望结果为:

[
    {
        "id": 1,
        "name": "group1",
        "users": [
            {
                "id": 1,
                "name": "Mike"
            }
        ]
    },
    {
        "id": 2,
        "name": "group2",
        "users": []
    }
]
你可以使用和来做这件事

let arr=[{“id”:1,“name”:“group1”,“users”:[{“id”:1,“name”:“Mike”},{“id”:2,“name”:“Steve”},{“id”:3,“name”:“John”},{“id”:2,“name”:“group2”,“users”:[{“id”:4,“name”:“Phill”},{“id”:5,“name”:“Joe”},{“id”:6,“name”:“Dominik”}];
函数过滤器(arr,名称){
返回arr.map(obj=>{
返回{
…obj,
“users”:obj.users.filter(user=>user.name==name)
};
});
}
控制台日志(过滤器用户(arr,“Mike”)您可以使用和来执行此操作

let arr=[{“id”:1,“name”:“group1”,“users”:[{“id”:1,“name”:“Mike”},{“id”:2,“name”:“Steve”},{“id”:3,“name”:“John”},{“id”:2,“name”:“group2”,“users”:[{“id”:4,“name”:“Phill”},{“id”:5,“name”:“Joe”},{“id”:6,“name”:“Dominik”}];
函数过滤器(arr,名称){
返回arr.map(obj=>{
返回{
…obj,
“users”:obj.users.filter(user=>user.name==name)
};
});
}
控制台日志(过滤器用户(arr,“Mike”)