// [].reduce
// 前提数据源同 name 的是放在一起的
var old = [
{ name: "01", week: "周二", classes: "1-2", info: "数学" },
{ name: "01", week: "周三", classes: "3-4", info: "语文" },
{ name: "01", week: "周四", classes: "3-4", info: "体育" },
{ name: "01", week: "周五", classes: "7-8", info: "英语" },
{ name: "02", week: "周二", classes: "3-4", info: "语文" },
{ name: "02", week: "周三", classes: "5-6", info: "数学" },
{ name: "02", week: "周四", classes: "3-4", info: "政治" },
{ name: "02", week: "周五", classes: "7-8", info: "英语" },
];
const transform = (list) => {
return list.reduce(
(acc, cur) => {
let { result, current } = acc;
const { name, ...rest } = cur;
if (name !== current) {
current = name;
result = result.concat({ name, info: [rest] });
} else {
result[result.length - 1].info.push(rest);
}
return { result, current };
},
{ result: [], current: "" }
).result;
};
const result = transform(old);