我有一个对象数组,其中一些是movieclips和一些类实例。我需要从数组中删除一个项目,但是如何最好地识别要删除的数组索引。
我目前正在使用此代码,它可以正常工作
var i:int;
for (i = 0; i < list.length; i++) {
if (list[i].toString() == '[object myClass]') {
trace('found', i);
list.removeAt(i);
}
}
我在想,必须有一个更好的方法来获取对象名称而不需要循环遍历数组。
答案 0 :(得分:3)
我可以稍微澄清一下如何识别应该删除的对象。如果您只想删除作为myClass
类实例的任何对象,我建议使用is
关键字。
此外,警告,当您迭代它时从列表中删除项目只是在寻找麻烦。如果您在index [0]
处删除了对象,那么以前位于index [1]
的对象现在为index [0]
,但您的for循环将在i
处增加一个index [0]
每次迭代,所以你永远不会再次检查backwards--
。因此,您可以跳过要删除的一个或多个对象。
而是尝试迭代应该解决该问题的for (var i:int = (list.length - 1); i >= 0; i--)
{
if (list[i] is myClass)
{
trace("found", i);
list.removeAt(i);
}
}
。
以下是两个建议的结合:
try (InputStream input = payroll.class.getClassLoader().getResourceAsStream("Employee.txt")){
DataInputStream in = new DataInputStream(input);
}