使用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的partialRight,但是它似乎不适用于可迭代的对象,并且还尝试了flatMap,但没有效果。如果有人帮我解决这个问题,那就太好了。提前致谢!

NotTheBestAnswer:

您可以使用香草javascript而不是Lodash来做到这一点。寻找ES6方法,例如map / reduce / filter。范例:

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
    })),
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章