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

Gom nhóm đối tượng xe hơi theo nhóm (group) trong JavaScript

Cho mảng đối tượng xe có thuộc tính group (mảng). Gom các xe theo từng group, xe có thể thuộc nhiều group.

Ví dụ

const arr = [    {       "group":[],       "name": "All Makes",       "code": ""    },    {       "group":["Group A"],       "name": "BMW",       "code": "X821"    },    {       "group":["Group B"],       "name": "Audi",       "code": "B216"    },    {       "group":["Group B"],       "name": "Ford",       "code": "P385"    },    {       "group":["Group B", "Group C"],       "name": "Mercedes",       "code": "H801"    },    {       "group":["Group C"],       "name": "Honda",       "code": "C213"    } ]; const groupTogether = (arr = []) => {    let res = []    res = Object.entries(arr.reduce((acc, { group, ...r }) => {       group.forEach(key => acc[key] = (acc[key] ||       []).concat({...r}));       return acc;    }, {}))    return res.map(([group, arr]) => ({ group, arr })); }; console.log(JSON.stringify(groupTogether(arr), undefined, 4));

Kết quả

[    {       "group": "Group A",       "arr": [          {             "name": "BMW",             "code": "X821"          }       ]    },  {    "group": "Group B",    "arr": [       {          "name": "Audi",          "code": "B216"       },       {          "name": "Ford",          "code": "P385"       },       {          "name": "Mercedes",          "code": "H801"       }    ] }, {    "group": "Group C",    "arr": [       {          "name": "Mercedes",          "code": "H801"       },       {          "name": "Honda",          "code": "C213"       }    ]    } ]