我有这样的一组数据:需求是用d3做一个多层的关系图,要求不同层级的元素有不同的样式,这样就需要给每一层的元素加上对应的层级标识使d3渲染的时候能知道当前元素在第几层展示对应的样式。所以我想实现把上面的那组数据的每一个元素加上一个layer标识,比如下面的样子:由于数据都是动态的,所以需要代码遍历实现。
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
供参考
let queue = [data, null]
let level = 0
while (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)
}
}
添加回答
举报
0/150
提交
取消