reduce
方法,首先按库存进行分组,然后按目标进行分组。要返回数组数组作为结果,可以使用
Object.values
map
.
var data = [{ID: "K111", Objective: "One", Inventory: "Second" },{ID: "K112", Objective: "Two", Inventory: "Second" },{ID: "K113", Objective: "One", Inventory: "Second" },{ID: "K114", Objective: "Three", Inventory: "Second" }, {ID: "K132", Objective: "One", Inventory: "First" }];
var res = data.reduce((r, e) => {
let {Objective, Inventory} = e;
r[Inventory] = r[Inventory] || {}
r[Inventory][Objective] = r[Inventory][Objective] || {}
Object.assign(r[Inventory][Objective], e);
return r;
}, {})
var array = Object.values(res).map(Object.values)
console.log(array)
console.log(res)