Javascript 如何在三个js中迭代场景子对象

Javascript 如何在三个js中迭代场景子对象,javascript,function,three.js,Javascript,Function,Three.js,使用三个js: 我有一个函数removeBysid(id) 我想做的是进入场景中的所有子对象,检查第三个子对象的treeNode,并获取其唯一的sid(我创建的变量) 在控制台中执行以下操作时: scene.children[4]。children[0]。children[0]。treeNode 我得到了我想要的功能 现在,我需要一个函数来迭代所有子项,而不必像在控制台中那样硬编码索引 function removeBysid(id) { scene.traverse(function(ele

使用三个js:

我有一个函数
removeBysid(id)

我想做的是进入场景中的所有子对象,检查第三个子对象的
treeNode
,并获取其唯一的
sid
(我创建的变量)

在控制台中执行以下操作时:

scene.children[4]。children[0]。children[0]。treeNode

我得到了我想要的功能

现在,我需要一个函数来迭代所有子项,而不必像在控制台中那样硬编码索引

function removeBysid(id) {
 scene.traverse(function(element) {
    //element returns Scene {uuid: "AC30E121-517A-40F9-8F86-F3626003A3C7", name: "", type: "Scene", parent: null, //children: Array(6)…} now i want to check scene.children[4].children[0].children[0].treeNode.sid = sid
 })
}

应该是这样的:

function removeBysid(id) {
    scene.traverse(function(element) {
        if (element.children[0].children[0].treeNode.sid == id) {
            scene.remove(scene.getObjectById(element.id);
            // And since you know it's unique...
            return;
        }
    })
}

是一种方法,因此它将自动迭代整个场景。在给定函数中放置断点、控制台日志或警报,您可以看到每个对象都会调用它。尝试检查您的
sid
,如果遇到任何问题或错误,请更新您的帖子。您找到解决方案了吗?