el-table原始列表转换成树形数据

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;
	}
相关推荐
野槐4 分钟前
vue3+node.js+mysql写接口(二)
node.js
讨厌吃蛋黄酥15 分钟前
🚀 全栈开发48小时逆袭:用Node.js打造超炫实时数据仪表盘! 📊
node.js·全栈
Tina_晴17 分钟前
【基础篇】Promise初体验+案例分析(上)
前端·javascript·面试
7ayl19 分钟前
闭包
javascript
断竿散人19 分钟前
浏览器 History 对象完全指南:从 API 原理到 SPA 路由实战
前端·javascript·vue-router
天若有情67325 分钟前
Node.js 是什么?npm 是什么? Vue 为什么需要他们?
vue.js·npm·node.js
姜太小白26 分钟前
【ECharts】多个ECharts版本共存解决方案
前端·javascript·echarts
前端风云志29 分钟前
JavaScript面试题,为什么[] + 0 = '0', 而{} + 0 = 0?
javascript
FogLetter40 分钟前
节流(Throttle):给频繁触发的事件装上"冷却时间"
前端·javascript
小公主42 分钟前
彻底搞懂 Event Loop!这篇文章帮你一次性吃透宏任务、微任务、执行顺序
前端·javascript