【vue】 将扁平化数组结构数据处理为tree对象数组并对tree对象进行排序

前端工程师能力地图:从JavaScript基础到性能优化的笔试全解析 JavaScript作为现代Web开发的基石,其核心概念如作用域、闭包、原型链和异步编程,构成了前端工程师理解语言运行机制的关键。这些原理不仅决定了代码的执行结果,更深刻影响着应用的性能与可维护性。深入掌握这些基础,能帮助开发者编写出更高效、健壮的代码,从而应对复杂业务场景的挑战。在前端工程实践中,性能优化是衡量工程师能力的重要维度,它涉及网络请求、渲染流程、代码分割等多个层面。本文基于前端面试中的高频考点,系统梳理了从语言基础、浏览器原理到框架应用、算法思维及系统设计的完整能力体系,并结合虚拟DOM、事件 阅读详情
/**
 * 将扁平化数据结构处理为tree结构
 * @param { 扁平化数据结构 } obj 
 */
export function formatTree(obj){
  let copyedObj = JSON.parse(JSON.stringify(obj));  //深拷贝源数据
  return copyedObj.filter(parent =>{
    let findChildren = copyedObj.filter(child => {
      return parent.id === child.parentId;
    })
    findChildren.length > 0 ? parent.children = findChildren : parent.children = []
    return parent.parentId == undefined   
  })
}

 

 此处为根据tree结构对象中的location值的大小进行排序 

/**
 * 树结构list排序
 * @param { tree结构list } list 
 */
export function sortList(list){
    list.sort((obj1, obj2) => {
        obj1.location = obj1.location || 255;
        obj2.location = obj2.location || 255;
        let val1 = Number(obj1.location);
        let val2 = Number(obj2.location);
        if (val1 < val2) {
            return -1;
        } else if (val1 > val2) {
            return 1;
        } else {
            return 0;
        }
    }).forEach(v => {
        if(v.children){
            sortList(v.children);
        }
    });
}

 

前端100道八股文+50道场景题 闭包是指一个函数能够访问它外部函数作用域中的变量,即使外部函数已经执行完毕。形成闭包需要三个条件:函数嵌套、内部函数引用外部变量、外部函数返回内部函数。闭包的主要作用有三个:第一,实现数据私有化。比如可以用闭包创建私有变量,外部无法直接访问,只能通过特定方法操作。第二,模块化。可以用闭包封装代码,只暴露需要的接口。第三,函数柯里化和防抖节流等高级技巧都会用到闭包。闭包的缺点是可能造成内存泄漏。因为闭包引用的外部变量不会被垃圾回收,如果大量使用闭包且不及时清理,会占用过多内存。 阅读详情

相关推荐

中科闻歌前端面试题及参考答案

call、apply、bind 无法修改箭头函数内部 this,就算传入参数,绑定 this 的参数会直接被忽略。

大模型大数据攻城狮的专栏 174

Vue中实现 将数组转换为树形结构的两种方法

第一种:递归实现数组转为树形结构 第一步: // 递归: 封装一个函数:将列表list数据转换成数据树形数据=>递归 // 遍历树形 有一个重点 要先找一个头 function transListDataToTreeData(list, root) { const arr = [] // 1.遍历 list.forEach((item) => { // 2.首次传入空字符串 判断list的pid是否为空 如果为空就是一级节点 if (item.pid ==...

FellAsleep的博客 1万+

【信息科学与工程学】计算机科学与自动化——第一百三十五篇 开发框架篇 101开发框架对比

EJB 事务是“容器替你管到底”的重量级契约,Spring 事务是“你定义规则、容器帮你执行”的轻量级抽象。对比点数学表达含义EJB 事务成本重但标准Spring 本地事务成本轻量Spring JTA 事务成本介于两者之间代理开销Spring AOP 每次调用额外成本NESTED 保存点仅部分回滚时支付XA 2PC分布式强一致代价自调用失效(无代理)Spring AOP 陷阱事务同步回调Spring 特有扩展点对比维度MyBatisVue 3React 18FastAPI。

weixin_49199313的博客 211

vue js数组对象转树形结构

【代码】vue js数组对象转树形结构。

weixin_53587375的博客 670

【信息科学与工程学】计算机科学与自动化 第二百零一十一 软件开发模型01

编号类型模型领域模型中的知识点/因素/参数关联知识和法律法规1传统顺序模型瀑布模型 (Waterfall)通用软件开发、硬件紧密耦合系统、政府/军工项目、需求稳定的传统信息系统严格线性阶段:可行性研究→需求分析(SRS,含功能/非功能/接口/约束,使用IEEE 830模板)→系统设计(概要设计HLD:架构、模块划分、数据库ER图;详细设计LLD:伪代码、类图、接口定义)→实现(编码规范、代码审查、静态分析工具SonarQube)→测试(单元测试JUnit、集成测试、系统测试、验收测试UAT,测试计划提前编写

weixin_49199313的博客 159

Vue数组转成树结构

假设我们有一个包含父子关系的扁平数组,数组中的每个元素都包含一个唯一标识符和一个指向父节点的引用。我们的目标是将这个扁平数组转换成一个树形结构,以便在界面上进行展示和操作。在Vue开发中,我们经常需要将扁平的数组转换成树形结构,以便在前端页面中展示数据。本文将介绍如何使用Vue进行数组转树操作,并提供相应的源代码示例。该方法使用递归算法遍历扁平数组,并根据父节点ID将子节点添加到相应的父节点中。为了将扁平数组转换成树形结构,我们可以使用递归算法进行处理。的Vue组件,用于渲染树形结构。

PixelNovaO的博客 479

数组树形结构与扁平化结构相互转换

【代码】数组树形结构与扁平化结构相互转换。

weixin_46011719的博客 368

间充质干细胞衰老机制与抗衰老干预策略研究

干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩

weixin_33502772的博客 229

Js-树形结构数据(tree)扁平化处理

树形结构格式转换成一维数组对象格式。

锦瑟年华L的博客 820

基于PLC的茶叶揉捻机自动控制系统设计【附代码】

茶叶揉捻是初茶加工过程中的一道关键工序,通过揉捻可以使鲜茶叶成条、碎茶及叶组织细胞破损等。影响茶叶成条率、碎茶率和叶组织细胞破损的主要因素包括揉捻时间、压力和揉捻桶转速。为了提高茶叶品质的稳定性和减轻工人的劳动强度,本文提出了一种基于PLC自动控制技术的茶叶揉捻机控制系统设计。📊 PLC自动化设计 | 毕业设计指导 | 工业自动化解决方案。✅ 具体问题可以私信或查看文章底部二维码。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1344

使用ExcelJS向XLSX单元格居中插入图片

本文记录了使用ExcelJS库向XLSX单元格里居中写入图片的方法。本文内容包括:xlsx 文件格式;xlsx 图片定位的长度单位;使用nativeColOff和nativeRowOff进行定位,不要使用官网给的定位方式;添加图片到数据表的总体流程和样例代码;注意事项等。

weixin_43678000的博客 3456

将平铺的数组转树

一般来说,平铺的数组转树用到的地方还是比较多的,所以有必要记录一下,因为我这个项目中,需要多次用到,所以就封装一个组件,方便多次调用,有两种方式实现数组转树1.非递归方式2.递归方式 后面补上...

weixin_69743436的博客 304

【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践

本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。

cc789的博客 527

Vision-Agents Decart 插件:实时视频风格化实战与断线自愈拆透

Vision-Agents 的 Decart 插件把摄像头画面逐帧重绘成任意风格,一次安装加一个密钥,就能让通话里的画面跟随对话实时切换风格、叠加参考图换装。它最合适的场景是低延迟视频通话中的实时风格化:直播虚拟试装、互动滤镜、风格化连麦。本文给出三样可落地的内容:`RestylingProcessor` 的安装方式与全部构造参数,用 Function Calling 把换风格挂进 LLM 的两层

gitblog_01385的博客 423

探索LLM世界:新手小白的学习路线图

通过系统的学习和实践,新手小白也能逐步掌握LLM的核心技术。掌握LLM不仅能提升个人技术水平,还能为职业发展带来广阔的前景。未来,随着技术的不断进步,LLM将在更多领域发挥重要作用,成为推动科技进步的重要力量。学习LLM是一条充满挑战但也充满机遇的道路。只要你坚持不懈、不断学习和实践,就一定能够在LLM领域取得突破。希望本文提供的学习路线图能为你指明方向,助你早日掌握LLM,开启AI学习的新篇章!

m0_62110645的博客 2360

手把手教你学Simulink——基础储能管理场景实例:基于Simulink的压缩空气储能(CAES)系统简化模型仿真

本文介绍了基于Simulink的压缩空气储能(CAES)系统简化模型仿真方法。CAES作为大规模长时储能方案,相比锂电池具有成本低、寿命长等优势。文章详细讲解了AA-CAES系统组成、热力学建模理论,以及Simulink实现流程,包括储气室、压缩机、膨胀机等核心模块的建模方法。通过8小时充电(50MW)和6小时放电(40MW)的仿真,验证了系统可实现60%往返效率。该模型为理解CAES系统运行机制提供了实用工具,并指出热管理、储气室特性等工程实践要点,为新型电力系统储能规划提供了仿真基础。

MHD0815的博客 171

函数模块化重构多级菜单:从意大利面条代码到清晰架构的实践

在软件开发中,处理树形数据结构是常见的需求,例如后台管理系统的导航菜单、权限配置树或商品分类。其核心原理是将具有层级关系的节点组织成嵌套结构,通常涉及递归遍历、父子关系映射和状态管理。函数模块化是一种重要的软件设计思想,它通过将复杂逻辑拆分为职责单一、可复用的纯函数单元,显著提升代码的可维护性、可测试性和可扩展性。这种技术价值在于能够将原本高度耦合的“面条式代码”重构为清晰的数据处理流水线,从而优雅地应对业务逻辑的动态变化。本文以多级菜单这一典型应用场景为例,详细阐述了如何通过数据标准化、树形构建、权限过滤

weixin_34242819的博客 756

淋巴结病理数字玻片读取与处理代码

Whole-slide images are generally stored in a multi-resolution pyramid structure. 首先安装openslide模块 pip install openslide-python import os.path as osp import openslide from pathlib import Path...

猫头军师兵书 1276

Lodash.js核心函数实战指南:提升JavaScript工程效率

JavaScript作为动态弱类型语言,在对象嵌套访问、数组去重、函数节流等基础操作上长期存在原生API碎片化、边界处理不健壮等问题。Lodash.js通过高度封装的工具函数,以声明式语法实现安全取值、深拷贝、防抖节流等高频需求,其模块化设计支持Tree Shaking,TypeScript类型定义完善,且经15000+测试用例验证边界场景。在中后台系统、电商页面、表单管理等需要高稳定性和快速迭代的工程场景中,Lodash已成为事实标准的js工具库。本文聚焦_.get、_.debounce、_.cloneD

weixin_30555515的博客 390

凝聚态物理新引擎:AI 驱动材料预测与相变识别大突破

摘要:本文深入探讨 AI 在凝聚态物理中的创新应用。在材料性质预测方面,AI 借助数据收集、特征提取和模型训练,能依据材料微观信息准确预估其宏观性质,以石墨烯为例验证了高效性。对于拓扑相变识别,AI 通过分析量子力学数据,利用机器学习算法判别相变节点,助力拓扑绝缘体研究。尽管面临数据质量、模型可解释性等挑战,但未来多模态数据融合、可解释 AI 等发展方向,将推动 AI 与凝聚态物理深度融合,助力探索物质奥秘与新材料研发。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1828

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2025百度前端面试核心考点全解析与备考策略

前端面试不仅考察知识点的记忆,更看重从现象到原理的还原能力、方案权衡能力和代码落地能力。以JavaScript事件循环为例,微观任务与宏任务的执行顺序、闭包与作用域链的底层机制,都是高频考点;React与Vue的设计哲学差异、微前端与工程化性能优化,则进一步检验候选人的技术视野。掌握这些基础原理,能帮助开发者在面对白屏排查、首屏加载优化等真实场景时快速定位瓶颈,并构建可维护的前端架构。从网络层、渲染层到框架层,系统化梳理核心知识体系,正是备战大厂面试的关键路径。围绕百度前端岗位的高频题型,拆解常见追问方式与

weixin_33860528的博客 353

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Cocos基础概念知识

【架构透视与数据流向图解】Cocos Creator 3.x 引入了高度可定制的现代渲染管线(Render Pipeline),支持跨平台的高性能图形渲染。其工作原理可以抽象为一个从“逻辑数据”到“屏幕像素”的数据流转换过程。【工作原理数据流图】场景图 (Scene Graph)➔渲染收集 (RenderFlow)➔渲染队列 (RenderQueue)➔渲染管线 (RenderPipeline)➔图形 API (WebGL/Vulkan)1. 场景漫游与数据收集(RenderFlow)

qq_52269550的博客 562

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

vue扁平数据转树形结构递归组件渲染

这里使用的是用map映射id和自身然后遍历通过parentid找父级的方法 源扁平数据: { "code": 200, "message": "操作成功", "data": [ { "functionId": 10000, "parentFunctionId": 0, "functionName": "安全检测" }, { "funct

Suk__的博客 706

vue平铺数组转换成树型数组

【代码】vue平铺数组转换成树型数组。

qq_44684550的博客 282

vue/javascript 根据parentId 返回树结构数组

前言 效果在最后面 我认为前端序列化成树结构比较好,没必要后端做了再返回,所以才有以下的故事。 很多时候我们前端展示的树结构,后端只是返回来一个带有parentId的数组对象给我们,而前端则需要根据parentId去序列化成树结构… 每次序列化一次都要从新写一个… 所以我就特此记录一下。 正文 先看方法 /** * 构造树型结构数据 * @param {*} data 数据源 * @param {*} id id字段 默认 'id' * @param {*} parentId 父节点字段 默认

Ambitiouss的博客 1920

vue js数据扁平结构转树状结构

//方法一 let treeMapList = res.data.reduce((memo,current)=>{ memo[current[“id”]] = current; return memo; },{}); console.log(treeMapList); this.tree_list = res.data.reduce((arr,current)=>{ let parent_id = current.parent_id; let parent = treeMapList[paren

qq_45031191的博客 400
上一篇: 【ant design vue】 a-cascader级联下拉框获取及回显(非动态加载级联数据)
下一篇: 【vue && ant design vue】 双击行复制该行数据id值
谭CV
博客等级 码龄9年 73粉丝 85原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值