Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Gom nhóm mảng đối tượng theo tableName trong JavaScript

Cho mảng đối tượng có tableName, column, rows. Gom nhóm theo tableName, gộp column và rows thành mảng.

Ví dụ

const arr = [    {       "dataId": "1",       "tableName": "table1",       "column": "firstHeader",       "rows": [ "val","b","c" ]    },    {       "dataId": "2",       "tableName": "table1",       "column": "secondHeader",       "rows": [          "d","e","f",       ]    },    {       "dataId": "3",       "tableName": "table2",       "column": "aNewFirstHeader",       "rows": [          1,2,3       ]    } ]; const groupArray = (arr = []) => {    const res = arr.reduce((obj => (acc, val) => {       let item = obj.get(val.tableName);       if (!item) {          item = {             tableName: val.tableName, column: [], rows: []          }          obj.set(val.tableName, item); acc.push(item);       };       item.column.push(val.column); item.rows.push(val.rows);       return acc;    })(new Map), []);    return res; }; console.log(JSON.stringify(groupArray(arr), undefined, 4));

Kết quả

[    {       "tableName": "table1",       "column":       [          "firstHeader",          "secondHeader"       ],       "rows": [          [             "val", "b", "c"          ],          [             "d", "e", "f"          ]       ]    }, {       "tableName": "table2",       "column": [             "aNewFirstHeader"          ],          "rows": [          [             1, 2, 3          ]       ]    } ]