[JavaScript] 將array object 根據值重新 js format的作法

 

黑魔法解法


    let arr = [
      { a: 1, b: 1 },
      { a: 1, b: 2 },

      { a: 2, b: 1 },
      { a: 2, b: 2 },
      { a: 2, b: 3 },

      { a: 3, b: 1 },
      { a: 3, b: 2 },
      { a: 3, b: 3 },
      { a: 3, b: 4 },
    ];


   let group = this.KycOptionObj.reduce((r, d) => {
      r[d.a= [...(r[d.a|| []), d];
      return r;
    }, {});
    console.log('group', group);



或是


javascript的一個函式庫

Loadash


方法1

    let arr = [
      { a: 1, b: 1 },
      { a: 1, b: 2 },

      { a: 2, b: 1 },
      { a: 2, b: 2 },
      { a: 2, b: 3 },

      { a: 3, b: 1 },
      { a: 3, b: 2 },
      { a: 3, b: 3 },
      { a: 3, b: 4 },
    ];
    .mapValues(.groupBy(arr, 'a'),
                              clist => clist.map(arr => _.omit(arr, 'a')));


方法2


_.groupBy(arr, 'a') 






感謝

林奇璇











留言

這個網誌中的熱門文章

[Angular] 閒置登出作法

[Angular Materail] 檔案上傳範例

[Angular Material] 搜尋式下拉選單範例