Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象上使用groupBy的lodash_Javascript_Lodash - Fatal编程技术网

Javascript 在对象上使用groupBy的lodash

Javascript 在对象上使用groupBy的lodash,javascript,lodash,Javascript,Lodash,我想使用lodash的groupBy,我想实现以下目标。 我有这个代码,我想把它转换成这个 [{ id: 1, name: 'campaign_application_view', description: 'Campaign Apply - View', category: 'Campaign' }, { id: 2, name: 'pixel_application_view', description: 'Pixel Ap

我想使用lodash的groupBy,我想实现以下目标。 我有这个代码,我想把它转换成这个

 [{
    id: 1,
    name: 'campaign_application_view',
    description: 'Campaign Apply - View',
    category: 'Campaign'
  }, 
  {
    id: 2,
    name: 'pixel_application_view',
    description: 'Pixel Apply - View',
    category: 'Pixels'
  }
 ];
对此

{
  Campaign: {
    selected: [],
    items: [{
        id: 1,
        name: 'campaign_application_view',
        description: 'Campaign Apply - View',
        category: 'Campaign'
      }
    ]
  },
  Pixels: {
    selected: [],
    items: [{
        id: 2,
        name: 'pixel_application_view',
        description: 'Pixel Apply - View',
        category: 'Pixels'
      }
    ]
  }
}
  • 向项目添加键
  • 添加另一个键

  • lodash
    \u groupBy
    只允许我像
    {Campaign:[],Pixels:[]}
    那样对其进行分组,分组后使用
    \u.mapValues()
    转换为所需的形式:

    const arr=[{“id”:1,“name”:“campaign_application_view”,“description”:“campaign Apply-view”,“category”:“campaign”},{“id”:2,“name”:“pixel_application_view”,“description”:“pixel Apply-view”,“category”:“Pixels”};
    const result=\映射值(
    _.groupBy(arr,“类别”),
    项目=>({
    选定:[],
    项目
    })
    );
    控制台日志(结果)
    
    分组后,使用
    .mapValues()
    转换为所需格式:

    const arr=[{“id”:1,“name”:“campaign_application_view”,“description”:“campaign Apply-view”,“category”:“campaign”},{“id”:2,“name”:“pixel_application_view”,“description”:“pixel Apply-view”,“category”:“Pixels”};
    const result=\映射值(
    _.groupBy(arr,“类别”),
    项目=>({
    选定:[],
    项目
    })
    );
    控制台日志(结果)
    
    一旦你把它放在上面的形状中,就不难返回你想要的形状:
    {Campaign:{selected:[],items:grouped.Campaign},Pixels:{…}
    一旦你把它放在上面的形状中,就不难返回你想要的形状:
    {Campaign:{selected:[],items:grouped.Campaign},Pixels:{…}