【发布时间】:2014-12-11 20:42:12
【问题描述】:
在 Haxe 中迭代列表时可以从列表中添加和删除项目吗?或者它会产生奇怪的行为吗? 我很怀疑,因为在 C# 中完全禁止这样做。
架构
【问题讨论】:
在 Haxe 中迭代列表时可以从列表中添加和删除项目吗?或者它会产生奇怪的行为吗? 我很怀疑,因为在 C# 中完全禁止这样做。
架构
【问题讨论】:
标记为正确的答案是跳过第一个元素。 正确的代码是:
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);
【讨论】:
它不会很好地结束......你可以迭代数组并删除元素:
var i:Int = 0;
while (i < array.length) {
i++;
if (removeCondition) {
array.splice(i, 1);
i--;
}
}
编辑如果你使用列表,方法应该类似,到目前为止还没有用列表做过。
【讨论】: