javascript - 使用 lodash 迭代内部对象
问题描述
这是我的 JSON 对象:
{
"id": 2,
"full_name": "Karan Kumar",
"user_skills": [
{
"skill_id": 1,
"skill": {
"skill_name": "Angular 8"
}
},
{
"skill_id": 3,
"skill": {
"skill_name": "Java Spring"
}
}
],
"resource_allocateds": [
{
"project_id": 1,
"end_date": "2019-06-20",
"project": {
"project_name": "Inventory System"
}
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project": {
"project_name": "Hospital Management System"
}
}
]
}
我想从上面的 JSON 中选择某些属性,我希望它是这样的:
{
"id": 1,
"full_name": "Karan Kumar",
"skills": [{
"skill_id": 1,
"skill_name": "Angular 8"
},
{
"skill_id": 3,
"skill_name": "Java Spring"
}],
"resource_allocateds": [{
"project_id": 1,
"end_date": "2019-06-20",
"project_name": "Inventory System"
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project_name": "Hospital Management System"
}]
}
我尝试使用 Lodash's partialRight
,但它似乎不适用于可迭代对象,并且还尝试了 flatMap,但没有奏效。如果有人帮助我解决这个问题,那就太好了。提前致谢!
解决方案
你可以使用 vanilla javascript 而不是 Lodash 来做到这一点。寻找像 map/reduce/filter 这样的 ES6 方法。例子 :
const input = {
"id": 2,
"full_name": "Karan Kumar",
"user_skills": [
{
"skill_id": 1,
"skill": {
"skill_name": "Angular 8"
}
},
{
"skill_id": 3,
"skill": {
"skill_name": "Java Spring"
}
}
],
"resource_allocateds": [
{
"project_id": 1,
"end_date": "2019-06-20",
"project": {
"project_name": "Inventory System"
}
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project": {
"project_name": "Hospital Management System"
}
}
]
};
const { id, full_name, user_skills, resource_allocateds } = input;
const output = {
id,
full_name,
skills: user_skills.map(item => ({
skill_id: item.skill_id,
skill_name: item.skill.skill_name
})),
resource_allocateds: resource_allocateds.map(item => ({
project_id: item.project_id,
end_date: item.end_date,
project_name: item.project.project_name
})),
}
推荐阅读
- android - 视图中的协程作业在哪里取消?
- c++ - 将枚举数组转换为参数包
- r - 如何使用 par() 在 R 中将四个 ggpar 对象合并为一个?
- r - 将每个日期具有一个值的数据框与每个日期具有多个条目的数据框结合起来
- sql - 在这种情况下与 <> 不同吗?
- amazon-advertising-api - 为什么亚马逊卖家中心和亚马逊广告 API 之间存在数据延迟?
- nuget - DevOps 中的 NuGet 从 https://botbuilder.myget.org 获得 401
- android - 操纵导航图参数
- elasticsearch - 如何还显示聚合期间考虑的存储桶内的值?
- excel - 多列的动态更新连接函数