我正在使用一个具有这种疯狂 for 循环的项目来扩展 D3.js 画布交互中的节点。本质上,我想要的是扩展所有孩子。因此,如果一个对象有一个孩子,我想扩展它们。
我从中剪掉了一大段代码。有这么多 for 循环,这很荒谬。我怎样才能将其简化为简单的“查找所有孩子,预制切换();和更新();”?
$('.expandAll').click(function(e) {
e.preventDefault();
length = root.children.length;
for (var i = 0; i < length; i++) {
toggle(root.children[i]);
update(root);
if (root.children[i]['children']) {
childlength = root.children[i]['children'].length;
for (var j = 0; j < childlength; j++) {
toggle(root.children[i]['children'][j]);
update(root);
if (root.children[i]['children'][j]['children']) {
childlength2 = root.children[i]['children'][j]['children'].length;
for (var k = 0; k < childlength2; k++) {
toggle(root.children[i]['children'][j]['children'][k]);
update(root);
}
}
}
}
}
});