js遍历解析多层级对象数组,如何给每个元素加入层级标识?

我有这样的一组数据:

https://img.mukewang.com/5c4c22fe000115d504910636.jpg

需求是用d3做一个多层的关系图,要求不同层级的元素有不同的样式,这样就需要给每一层的元素加上对应的层级标识使d3渲染的时候能知道当前元素在第几层展示对应的样式。

所以我想实现把上面的那组数据的每一个元素加上一个layer标识,比如下面的样子:

https://img.mukewang.com/5c4c230b0001e00905720390.jpg

由于数据都是动态的,所以需要代码遍历实现。

凤凰求蛊
浏览 2678回答 1
1回答

千万里不及你

供参考let queue = [data, null]let level = 0while (queue.length > 1) {  let node = queue.pop()  if (node === null) {    level += 1    queue.push(null)    continue  }  node.layer = level  if (node.children) {    queue = queue.concat(data.children)  }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript