gpt4 book ai didi

javascript - 如何过滤对象数组的子对象,然后返回带有更新后的子对象的父对象?

转载 作者:行者123 更新时间:2023-12-01 00:31:24 24 4
gpt4 key购买 nike

我正在尝试过滤其子对象的对象数组,然后更新子对象并返回带有更新后的子对象的父对象。

对象数组示例:

[
{
"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": []
}
]

最佳答案

您可以使用map()filter()来做到这一点。

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" } ] } ];

function filterUsers(arr, name) {
return arr.map(obj => {
return {
...obj,
"users": obj.users.filter(user => user.name === name)
};
});
}

console.log(filterUsers(arr, "Mike"));

关于javascript - 如何过滤对象数组的子对象,然后返回带有更新后的子对象的父对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58493754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com