问题
删除实体的时候,会实时修改 viewer.entities的下标,例如 entitys.length = 20,找到第一个 entitys[i]._name === “lablebill” (设其为第10个实体)的实体删除后, entitys.length 变成 19,而原来的第11个实体变成了第10个实体,所以循环的时候会漏掉,
解决方法:
i--;
//循环删除多个实体lable
function deleteLabel(viewer) {
var entitys = viewer.entities._entities._array;
console.log("====删除实体");
console.log(entitys.length);
console.log(entitys);
for (var i = 0; i < entitys.length; i++) {
if (entitys[i]._name === "lablebill") {
console.log("i=" + i);
console.log(entitys[i]._name);
console.log(entitys[i]._id);
viewer.entities.remove(entitys[i]);
i--;
}
}
}