Ecmascript 6 使用filter和groupby映射json数组的值

Ecmascript 6 使用filter和groupby映射json数组的值,ecmascript-6,angular5,lodash,Ecmascript 6,Angular5,Lodash,我的json如下所示。我正在尝试根据角色id对对象进行分组,目标id等于1083 我的json: [ { "id" :1, "role": { "id": "25", }, "target": { "id": "1083", } }, { "id" :2, "role": { "id": "25", }, "target": { "id": "1083",

我的json如下所示。我正在尝试根据角色id对对象进行分组,目标id等于1083

我的json:

[  {
    "id" :1,
    "role": {
      "id": "25",
    },
    "target": {
      "id": "1083",
    }
  },
    {
    "id" :2,
    "role": {
      "id": "25",
    },
    "target": {
      "id": "1083",
    }
  },
    {
    "id" :3,
    "role": {
      "id": "25",
    },
    "target": {
      "id": "1084",
    }
  },
  {
    "id" :4,
    "role": {
      "id": "3",
    },
    "target": {
      "id": "1083",
    }
  }
  ]
预期结果:

{
  "25" : [
  {
    "id": 1
    "role": {
      "id": "25",
    },
    "target": {
      "id": "1083",
    }
    },
       { "id": 2
    "role": {
      "id": "25",
    },
    "target": {
      "id": "1083",
    }
    }
  ],
  "3": [
    {
    "id" :4,
    "role": {
      "id": "3",
    },
    "target": {
      "id": "1083",
    }
  }]
}
对于我的结果json,它由25和3分组。第三条记录在我的预期结果中不存在,因为它的目标id是1084

我尝试只获取目标id 1083,但当我尝试使用grouby时,我得到了错误

data.filter(o => { 
          return o.target.id === "1083"
        }) 
使用lodash via和:

var data=[{“id”:1,“role”:{“id”:“25”,},“target”:{“id”:“1083”,},{“id”:2,“role”:{“id”:“25”,},“target”:{“id”:“1083”,},{“id”:3,“role”:{“id”:“25”,},“target”:{“id”:“1084”,},{“id”:“role”:{“id”:“3”,},“target
const groupIt=(targetId)=>ux0.chain(数据)
.filter(x=>x.target.id===targetId)
.groupBy('role.id')
.value()
console.log(groupIt('1083'))

当我尝试第一个解决方案时,我发现找不到名称“\u”。这一定是lodash版本依赖性问题。现在请看,我已更改为不使用速记来链接,仅使用
\uu.chain
是。很抱歉,我只是想知道有没有一种方法可以同时使用sort,这样我就可以按id对元素进行排序。我目前正在使用chain、filter、groupBy