映射前按属性对对象数组进行排序

时间:2019-04-16 20:50:57

标签: javascript

我有一个看起来像这样的数组(它有更多的对象,但是结构相同):

[
  {
      especiality: "surgery",
      users: [
          {
              id: "182",
              country: "Colombia",
              province: "Bogota",
              telephone: "211112212",
              neighbourhood: "La Santa"
              region: "South",
          },
          {
            id: "182",
            country: "Venezuela",
            province: "Caracas",
            telephone: "322323333",
            region: "North",
        },
        {
          id: "183",
          country: "Brasil",
          telephone: "23232333",
          neighbourhood: "Santos"
          region: "South",
      },
      ]
  },

用户由ID确定,地址由四个属性确定。目前,我有此函数,该函数返回一个通过其ID将所有用户加入的地址:

getGroups = test => {
  return test.map(item => {
     item.groupedUsers = [_.groupBy(item.users, user => [user.id])]
     return item
  })
}

问题是,如果ID相同,我还希望这些地址组成一个单个数组(我需要映射这些元素)。外观应如下图所示:

user: [{id: 182, locations[(if they exist)               
              country: "Colombia",
              province: "Bogota",
              telephone: "211112212",
              neighbourhood: "La Santa"
              region: "South"]}]

关于如何解决这个问题的任何想法?由于我需要考虑可能不存在的值,因此它与重复的问题不同。

0 个答案:

没有答案