在Haxe中迭代时,可以在列表中添加和删除项目吗?或者它可以创造一个奇怪的行为? 我很怀疑,因为在C#中完全禁止这样做。
archip
答案 0 :(得分:6)
标记为正确的答案是跳过第一个元素。 正确的代码将是:
var i:Int = 0;
while (i < array.length) {
if (removeCondition) {
array.splice(i, 1);
} else i++;
}
另外,如果你不介意反向迭代:
var i = array.length;
while (i-- > 0)
if (removeCondition)
array.splice(i, 1);
答案 1 :(得分:-2)
它没有很好地结束..你可以迭代数组并删除元素:
var i:Int = 0;
while (i < array.length) {
i++;
if (removeCondition) {
array.splice(i, 1);
i--;
}
}
编辑如果您使用列表,则该方法应该类似,到目前为止还没有使用列表。