簡體   English   中英

lodash 在 Object 上使用 groupBy

[英]lodash using groupBy on Object

我想使用 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'
      }
    ]
  }
}
  1. 為項目添加鍵。
  2. 添加另一個密鑰

lodash _groupBy只是讓我將其分組為{Campaign: [], Pixels: []}

分組后使用_.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 = _.mapValues( _.groupBy(arr, 'category'), items => ({ selected: [], items }) ); console.log(result);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM