如果你想在一次操作中删除所有满足条件的对象,你可以改用forEach()
方法,并且在遍历时先将这些对象存储在一个临时数组中,然后再使用forEach()
遍历临时数组进行删除。这样就可以一次性地将所有满足条件的对象从场景中删除。
const objectsToRemove:any = [];
// 遍历并存储需要删除的对象
Global.scene3D.children.forEach((line: any) => {
if (line.type === "Line2") {
objectsToRemove.push(line);
}
});
// 移除临时数组中的对象
objectsToRemove.forEach((line: any) => {
Global.scene3D.remove(line);
});
// 清空路径的相关操作
Global.scene.children.forEach((line: any) => {
if (line.type === "Line2") {
objectsToRemove.push(line);
}
});
// 移除临时数组中的对象
objectsToRemove.forEach((line: any) => {
Global.scene.remove(line);
});
通过使用临时数组,你可以在一次循环中将所有满足条件的对象从场景中移除,达到清除的效果。
<<场景中可能包含多个类型为"Line2"的对象。在map()
函数中执行remove()
方法时,遍历过程中会删除第一个满足条件的对象,然后继续遍历,删除下一个满足条件的对象。这可能导致你看起来不是"一下子都清掉"的原因。>>