//分组前数据 let obj= [ { name: 1, age: 11 }, { name: 2, age: 22 }, { name: 1, age: 33 }, { name: 2, age: 44 }, { name: 1, age: 55 }, { name: 1, age: 66 }, { name: 3, age: 67 }, { name: 3, age: 8 }, ], // 处理 groupBy() { // 遍历push到新数组所有name // 去重数组 // 遍历数组生成 【name:age:[]】 格式 // 双层遍历比对name 填入值 let arrName = [ ...new Set( obj.map((_) => { return _.name; }) ), ].map((_) => { return { name: _, age: [] }; }); arrName.forEach((_) => { obj.forEach((item) => { if (_.name == item.name) { _.age.push(item.age); } }); }); return arrName; },