美文网首页
三言两语笔记(1)(树结构)

三言两语笔记(1)(树结构)

作者: 萌小奇 | 来源:发表于2018-03-07 11:06 被阅读4次

背景:最近后台决定传给我一个树结构的json数据,每个子节点有目录结构,类似0001 0001
要求:

  1. 以列表的方式展示分组,能够折叠展开
  2. 当传过来的叶子节点为可编辑并且有值时,需要其结构上的父节点的值相对改变(增加或者减少)
  3. 当改变叶子节点的值时,父节点的值需要层层改变。

最初想法与实现:

  1. tableview列表需要有一组数据
  2. 既然要根据子节点改变父节点的值,需要把树结构的所有子节点放入一个数组中进行遍历。遍历存入数组时,,先存储根节点,每一层都可作为根节点,然后存储下一层节点,进而下一层节点即为根节点数组,以此循环。同时把可编辑节点目录存入一个数组
    3.根据可编辑节点数组,截取节点的上级节点目录,去遍历存储所有节点数组,依次改变值

存在问题:

  1. 需要进行多次do...while循环,费时占内存,界面已经加载,数据突然改变的问题
  2. tableview列表的数据,因为刚开始没有展开,所以只存储了根节点,把根节点的子节点付给cell,点击展开的时候,把子节点插入列表数组。但之后发现根节点可能也需要根据可编辑子节点已有的值进行值的改变。每进行一次折叠、展开,都需要去所有数组中查询节点的值,很伤,很晕

反思:
把所有数据存入字典中,像一个hash表,当然刚开始的循环存入所有节点的步骤不能省。把节点目录最为key,把节点作为value存入字典。

优点:

  1. 当改变某一节点值,只需要截取改节点目录,查找上级节点目录,作为key,直接取出节点,不要遍历数组
  2. 进行tableview的折叠展开,只需要在数组中存储节点,再根据节点目录查找真正的显示值即可。
  3. 条理清晰,可扩展性强。

我有酒,你有工作吗?来,坐下来谈谈。

相关文章

  • 三言两语笔记(1)(树结构)

    背景:最近后台决定传给我一个树结构的json数据,每个子节点有目录结构,类似0001 0001要求: 以列表的方式...

  • 树结构-1

    1.二叉搜索树、平衡二叉树2.平衡二叉树之红黑树、3.B 树、B+树、B* 树、4.字典树 ( Trie树 ) 二...

  • 03-树结构

    树结构依靠节点、叶子节点、子树将自身的数据扩展为像一棵倒过来的树 1. 什么是树结构 树结构依托路径、节点、叶子节...

  • JS树结构操作

    一、遍历树结构 1. 树结构介绍 JS中树结构一般是类似于这样的结构: 为了更通用,可以用存储了树根节点的列表表示...

  • 四种解析方式

    DOM 解析 : 优点:1形成了树结构,有助于更好的理解、掌握,且代码容易编写 2:解析过程中,树结构保...

  • 大师兄的数据结构学习笔记(五):二叉树

    大师兄的数据结构学习笔记(四):树结构[https://www.jianshu.com/p/31da4023b74...

  • 详谈树结构(传统树、字典树、hash 树、Merkle Patr

    关于数据结构中树结构的相关分享 本文参考: 树结构参考文献 一、传统的数据结构中的树结构 树结构是一种非线性存储结...

  • JavaScript 数据结构之二叉搜索树

    一、认识树结构 树结构示意图 树结构中的一些术语 树(Tree): n(n>=0) 个节点构成的有限集合 n = ...

  • Element-Ui el-tree 超出部分自动换行

    在使用element-ui 框架做vue 项目树结构时,发现需要固定树结构的宽度,而且树结构的字段有可能会特别长,...

  • MutationObserver 监听DOM树变化

    1 概述 Mutation observer 是用于代替 Mutation events 作为观察DOM树结构发生...

网友评论

      本文标题:三言两语笔记(1)(树结构)

      本文链接:https://www.haomeiwen.com/subject/uebatftx.html