element-ui的el-table可以显示树形数据,不过对数据格式有要求,只有带children属性的行才能树形展开和收起,假设原始数据是json列表,数据已经按colx排序,我们希望在el-table中同colx值得只显示一条,有多条数据的可以树形展开和收起。下面我们用js来实现,该转换功能在node后端或者javascript前端都可以。
javascript
function tree(list){
if (list.length==0) return [];
let newlist=[list[0]];
for (let i=1;i<list.length;i++) {
if (list[i]["colx"]===newlist[newlist.length-1]["colx"]) {
if (newlist[newlist.length-1]["children"]==undefined) {
newlist[newlist.length-1]["children"]=[list[i]]
}
else { newlist[newlist.length-1]["children"].push(list[i]); }
}
else {
newlist.push(list[i]);
}
}
return newlist;
}