后台接口返回的数据格式:
var data = [
{sucode1:"1",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"1",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"1",sucode2:"02",sucode3:"002",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"2",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"3",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"3",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
js转换树的方法:
function treeData(data){
var code1 = "-1";
var code2 = "-1";
var root1=[];
var rootData1={};
var tmp1=-1;
var tmp2=-1;
for(var info of data){
if(code1 != info.sucode1){
rootData1={title:info.subName1,code:info.sucode1,level:1,children:[{title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]}]};
root1.push(rootData1);
code1 = info.sucode1;
code2 = info.sucode2;
tmp1++;
tmp2=0;
}else{
var children = root1[tmp1].children;
if(code2 == info.sucode2){
var children2 = children[tmp2].children;
children2.push({title:info.subName3,level:3,code:info.sucode3});
children[tmp2].children = children2;
}else{
children.push({title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]});
rootData1.children = children;
root1[tmp1]=rootData1;
tmp2++;
code2 = info.sucode2;
code1 = info.sucode1;
return root1;
运行结果:
后台接口返回的数据格式:var data = [ {sucode1:"1",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"}, {sucode1:"1",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"}, {sucode1:"1",su...
在JS 剑指 Offer 32 - II. 从上到下打印二叉树 II的基础上加一个翻转的判断条件即可:
* Definition for a binary tree node.
* function
平常在使用antd的tree或者elementUI的tree去开发项目的时候,要求向这个组件中传递的数据都是格式化好的,有嵌套层级的数组,这种情况下就需要我们自行封装方法去组装数据结构,具体的代码如下:
// 格式化树数据
function toTreeData(data) {
const pos = {}
const tree = []
let i = 0
while(data.length != 0) {
if(data[i].pid == null) {
{id:1,parent:null,text:'菜单1'},
{id:11,parent:1,text:'菜单1-1'},
{id:12,parent:1,text:'菜单1-2'},
{id:2,parent:null,text:'菜单2'},
{id:21,parent:2,text:'菜单2-1'}
function .
假如我们拿到的数据
格式是这样的:当我们使用element组件库的Tree组件时,我们需要一个
树形数据才能进行渲染,但是我们从后端拿到的数据可能不是我们需要的数据
格式,此时,我们就需要对拿到的数据进行
格式转化。
假如我们拿到的数据
格式是这样的:
//数据
格式
const arr = [
{ id: '01', name: '张大大', pid: '00', job: '项目经理' },
{ id: '02', name: '小亮', pid: '01', job: '产品leader' },
在很多场景下由于区分授权,比如菜单或组织机构等,给当前用户返回的往往可能不是以固定的父id来标识数据的根节点。这种情况下就需要动态的根据当前数组本身自动判断构造树。
理论就是根据父id,在数组或树中查找,如果在元素中找到对应id,那么就追加为子元素。如果找不到,那当前元素就是定级元素。
* 列表转为树,pid值未知。思路:第一遍遍历构造为map,第二遍
* @param {*} list
* @returns
export function listToTree(list) {
{id:"01", name: "张大大", pid:"", job: "项目经理"},
{id:"02", name: "小亮", pid:"01", job: "产品leader"},
{id:"03", name: "小美", pid:"01", job: "UIleader"},
{id:"04", name: "老马", pid:"01", job: "技术leader"},
Object_DaNa:
itextpdf 生成PDF ,鼠标悬浮图片显示信息,点击事件
y276128897:
富文本编辑器保存的html内容使用itextpdf转PDF文件(css提取,内容重叠)问题解决
wleng:
富文本编辑器保存的html内容使用itextpdf转PDF文件(css提取,内容重叠)问题解决
勇气heart