js把树结构变成数组

2020-05-18 11:04:15

关于递归,个人理解,怎么递归进去,怎么再递归出来。这就完事了

js递归遍历树结构(tree)

我们有时候需要把树结构变成数组,来进行更好的操作。

下面是代码。


代码一

let datas = [] //是一个树结构的数据
setName(datas){ //遍历树  获取id数组
  for(var i in datas){
    this.expandedKeys.push(datas[i].id)
    if(datas[i].children){
      this.setName(datas[i].children);
    }
  }
},


代码二,用于封装

  treeToArray: function (datas) { //遍历树  获取id数组
    var expandedKeys = []
    for (var i in datas) {
      var item  = this.deepCopy(datas[i]) ;
      delete  item.childCategory
      expandedKeys.push(item)
      if (datas[i].childCategory) {
        expandedKeys =expandedKeys.concat(this.treeToArray(datas[i].childCategory))
      }
    }
    return expandedKeys;
  },


  • 2020-12-17 10:57:34

    使用 MediaSource 搭建流式播放器

    Media Source Extensions(媒体源扩展)大大地扩展了浏览器的媒体播放功能,提供允许JavaScript 生成媒体流。这可以用于自适应流(adaptive streaming,也是我毕设的研究方向)及随时间变化的视频直播流(live streaming)等应用场景。

  • 2020-12-17 11:00:37

    H5流式播放(FMP4转封装与mediaSource)

    W3C上有明确关于mediaSource 扩展接口的文档。mediaSource 扩展文档中是这么定义的, 它允许JS脚本动态构建媒体流用于和,允许JS传送媒体块到H5媒体元素。这种接口的应用可以让h5播放器实现持续添加数据进行播放。做as的朋友都知道as中的appendBytes方法,一种添加二进制数据进行播放的方式。这两种接口在概念上是类似的。只是里面的定义和对媒体文件的要求有所不同。对于mediaSource扩展接口我只介绍我们主要应用的几个。

  • 2020-12-18 17:15:29

    coTurn stun服务器搭建,禁用turn

    https://github.com/coturn/coturn 在这里git clone 下来然后编译安装,一切默认即可。编译后,也可以不用安装。在编译目录下bin文件夹下有turnserver turnutils_stunclient turnutils_uclient 这三个等一下会用到的软件。

  • 2020-12-18 17:26:25

    coturn配置文件详细解释

    Coturn 是webrtc,p2p视频通话必不少的,主要包含2个主要功能stun服务, turn服务 Coturn 的githup地址为 https://github.com/coturn/coturn/

  • 2020-12-21 06:26:16

    为UIView添加点击事件

    最近经常碰到要将UIImageView和UILabel看成整体的情况,我于是就将他俩用UIView包起来,那么怎么给一个UIView添加点击事件,可以这么实现: