当前位置: 首页 > news >正文

怎么做自己的微信网站西安微信商城网站设计

怎么做自己的微信网站,西安微信商城网站设计,七牛云 微信 打开 wordpress,手机网站被做跳转原文链接:如何将路径字符串数组(string[])转成树结构(treeNode[])? 需求 这里的UI使用的是Element-Plus。 将一个路径字符串数组(当然也可能是其他目标字符串数组),渲染成树。 /*source:/a/b/c/d/e/a/b/e/f/g/a/b/h/a…

原文链接:如何将路径字符串数组(string[])转成树结构(treeNode[])?

需求

这里的UI使用的是Element-Plus

将一个路径字符串数组(当然也可能是其他目标字符串数组),渲染成

/*source:/a/b/c/d/e/a/b/e/f/g/a/b/h/a/i/j/a/i/kwhat I need:a/   \b     i/|\   / \c e h j   k| |d f| |e g   */

这里模拟了待转化的字符串数组如下:

let TargetKeyLists = ["D:\\$RECYCLE.BIN\\S-1-5-21-2980625316-768050560-104202119-1001\\$I0KVI2C.css","D:\\$RECYCLE.BIN\\S-1-5-21-2980625316-768050560-104202119-1001\\$I61JY0M.php","D:\\$RECYCLE.BIN\\S-1-5-21-2980625316-768050560-104202119-1001\\$I8IC15E.html","D:\\$RECYCLE.BIN\\S-1-5-21-2980625316-768050560-104202119-1001\\$I9UTNI9.ico","D:\\Program Files\\Sandboxie","D:\\fbs\\xampp-windows-x64-8.2.0-0-VS16-installer.exe","D:\\fcstor\\.svn","D:\\xampp\\MercuryMail","D:\\xampp\\anonymous","D:\\xampp\\apache","C:\\$Recycle.Bin\\S-1-5-18","C:\\$Recycle.Bin\\S-1-5-21-2980625316-768050560-104202119-1001","C:\\$Recycle.Bin\\S-1-5-21-2980625316-768050560-104202119-500","C:\\BOOTNXT",
]

转化后的目标结构如下:

[{"label": "D:","children": [{"label": "$RECYCLE.BIN","children": [{"label": "S-1-5-21-2980625316-768050560-104202119-1001","children": [{"label": "$I0KVI2C.css","children": []},{"label": "$I61JY0M.php","children": []},{"label": "$I8IC15E.html","children": []},{"label": "$I9UTNI9.ico","children": []}]}]},{"label": "Program Files","children": [{"label": "Sandboxie","children": []}]},{"label": "fbs","children": [{"label": "xampp-windows-x64-8.2.0-0-VS16-installer.exe","children": []}]},{"label": "fcstor","children": [{"label": ".svn","children": []}]},{"label": "xampp","children": [{"label": "MercuryMail","children": []},{"label": "anonymous","children": []},{"label": "apache","children": []}]}]},{"label": "C:","children": [{"label": "$Recycle.Bin","children": [{"label": "S-1-5-18","children": []},{"label": "S-1-5-21-2980625316-768050560-104202119-1001","children": []},{"label": "S-1-5-21-2980625316-768050560-104202119-500","children": []}]},{"label": "BOOTNXT","children": []}]}
]

步骤

1.在utils文件夹下新建index.ts文件。

interface TreeNode {label: stringchildren: TreeNode[]
}// 循环构建子节点
const buildChildrenNode = (children: TreeNode[], nodeArray: string[]) => {for (let i in nodeArray) {let _i: number = Number(i)let node: TreeNode = {label: nodeArray[_i],children: []}if (_i != nodeArray.length) {node.children = []}if (children.length == 0) {children.push(node)}let isExist = falsefor (let j in children) {if (children[j].label == node.label) {if (_i != nodeArray.length - 1 && !children[j].children) {children[j].children = []}children = _i == nodeArray.length - 1 ? children : children[j].childrenisExist = truebreak}}if (!isExist) {children.push(node)if (_i != nodeArray.length - 1 && !children[children.length - 1].children) {children[children.length - 1].children = []}children = _i == nodeArray.length - 1 ? children : children[children.length - 1].children}}
}
/*** @description: string[] ->  treeNode[]* @param {string} list 资源路径数组* @param {string} clientLabel 是否需要在最外面还要套一层(exam:所属客户端)* @return { treeNode[] }*/
export const array2Tree = (list: string[], clientLabel?: string) => {let targetList: TreeNode[] = []list.map(item => {let label = itemlet nodeArray: string[] = label.split('\\').filter(str => str != '')// 递归let children: TreeNode[] = targetList// 构建根节点if (children.length == 0) {let root: TreeNode = {label: nodeArray[0],children: []}if (nodeArray.length > 1) {root.children = []}children.push(root)buildChildrenNode(children, nodeArray)} else {buildChildrenNode(children, nodeArray)}})if (!clientLabel) {return targetList} else {const newArr = [{label: clientLabel,children: targetList}]return newArr}
}

2.在目标页面中引入并调用array2Tree方法即可。

<template><el-tree :data="confirmTreeList" default-expand-all />
</template>
import { array2Tree } from '@/utils/index'let confirmTreeList: TreeNode[] = []confirmTreeList = array2Tree(TargetKeyLists)

3.效果如下:

这里说明一下,array2Tree()方法中的clientLabel参数其实可要可不要,也可继续扩展,根据自身业务而定。

比如我想最后实现的效果如下图所示:

所以在第2步中传入clientLabel即可:

confirmTreeList = array2Tree(TargetKeyLists,'test(192.168.0.213)')
http://www.yayakq.cn/news/466513/

相关文章:

  • 网站帮企业做推广价格怎么算Seo自己做网站
  • 三大门户网站是什么新浪微博 ssc网站建设
  • 槐荫区网站建设网站建设采用的技术
  • 做鞋的贸易公司网站怎么做好亳州市建设工程质量监督站网站
  • 静态网站后台管理系统软件开发 网站开发区别
  • 常用网站开发工具介绍响应式布局的缺点
  • 嘉兴品牌网站设计徐州有哪些网站制作公司
  • 网站屏蔽国内ip劳务公司找项目平台
  • 深圳推广网站湖州市城市建设档案馆网站
  • 做外贸网站注意事项wordpress连接数据库错误
  • 优化网站要多少钱莱芜雪野湖鱼头
  • 微 网站苏州公司建设网站
  • 做网站 简单外包黄页网云南企业
  • 做企业网站有什么工作内容网站建设需要的材料
  • 炫富做图网站免费建学校网站
  • 做唯品客网站的感想专业企业网站建设多少钱
  • 大连金广建设集团网站广西住房城乡建设厅官网站
  • 做网站包含微信公众号吗大连h5网站开发
  • 接效果图做网站建设企业手机银行客户号是什么
  • 公司简单网站多少钱分销网站开发合同
  • centos 7.2 做网站企业网站建设策划
  • 名片式网站模板电子商务网站建设 试卷
  • 备案网站可以做接码平台么深圳福田房价
  • 网站营销策划公司网站方案怎么写
  • 深圳互动网站建设千锋前端培训多少钱
  • 做网站开发多少钱泉州丰泽建设局网站
  • 网站具有购买功能需要怎么做广州市城乡建设局
  • php网站制作流程设计上海网站建设
  • 免费的视频网站推广软件小程序开发价格及清单
  • 敖降网站建设可以免费进的服务器网站