具有以下数据结构:
[
{
"items": [
{
"name": "View Profile",
"href": "/profile",
"icon": {}
},
{
"name": "Manage Account",
"href": "/manage",
"icon": {}
},
{
"name": "Other",
"icon": {}
}
]
},
{
"items": [
{
"name": "Access",
"href": "/access",
},
{
"name": "Give Feedback",
"href": "/feedback",
"icon": {}
}
]
}
]
需要一个函数返回一个对象数组,该数组只包含具有name
和href
的元素,忽略不具有name
的元素。
因此,生成的数组应该如下所示:
[
{
"name": "View Profile",
"href": "/profile"
},
{
"name": "Manage Account",
"href": "/manage"
},
{
"name": "Access",
"href": "/access"
},
{
"name": "Give Feedback",
"href": "/feedback"
}
]
我试过这样做,但没有成功:
const result = input.map(obj => obj.items).map(innerObj => innerObj.href ? ({innerObj.name, innerObj.href});
3条答案
按热度按时间2hh7jdfx1#
一个简单的一行程序-您将第一个Map的结果扁平化,然后过滤带有href & name的项目:
jgwigjjp2#
您可以检查属性并返回一个对象或数组,以获得平面结果。
pcww981p3#
使用
flatMap()
将结果展平一个级别,然后使用filter()
仅获取href
和name
可用的元素