[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')
感謝
林奇璇
留言
張貼留言