Actionscript 3:当元素是对象/类实例时,标识要删除的数组元素

时间:2017-12-11 18:58:44

标签: arrays actionscript-3 actionscript

我有一个对象数组,其中一些是movieclips和一些类实例。我需要从数组中删除一个项目,但是如何最好地识别要删除的数组索引。

我目前正在使用此代码,它可以正常工作

                    var i:int;
                    for (i = 0; i < list.length; i++) {

                        if (list[i].toString() == '[object myClass]') {
                            trace('found', i);
                            list.removeAt(i);
                        }

                    }

我在想,必须有一个更好的方法来获取对象名称而不需要循环遍历数组。

1 个答案:

答案 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);
    }