代码之家  ›  专栏  ›  技术社区  ›  robmcm

使用flex有效地从数组中拼接项

  •  1
  • robmcm  · 技术社区  · 15 年前

    我已经克服了一个问题,但我的解决方案似乎非常低效和笨拙。请考虑这个问题:

    我有一个包含文章的数组集合。

    此数组集合被筛选为当前选定的文章类别。

    有一个光标绑定到一个显示当前文章的视图。

    当一个类别被删除时,我需要删除被修改过的文章,我不能在不影响视图的情况下使用光标或集合,因为它们是绑定的。

    我可以在源上写下,但是如果我从源中删除(拼接),我必须中断并重新开始,因为所有的文章索引都会更改,即使在为每个索引使用时也是如此。

    这似乎是一种效率很低的做事方式,我相信有更好的方法可以做到这一点,即在同一个来源上使用另一个委托人,或者取消对我已完成更新的Unill观点的约束,等等。

    如果我错过了一个技巧,请告诉我,因为我确信这是一个非常常见的问题。

    谢谢

    抢劫

    P.S.在我的iPhone上写了这个。抱歉,有任何错误!

    2 回复  |  直到 15 年前
        1
  •  1
  •   Juan Pablo Califano    15 年前

    向后运行循环。

    因此,与其说:

    var len:int = arr.length;
    for(var i:int = 0; i < len; i++) {
        if(some condition) {
            arr.splice(i,1);
        }
    }
    

    这样做:

    for(var i:int = arr.length - 1; i >= 0; i--) {
        if(some condition) {
            arr.splice(i,1);
        }
    }
    
        2
  •  0
  •   CookieOfFortune    15 年前

    最简单的解决方案可能是将需要删除的索引保存在临时数组中。然后在遍历集合之后,返回并只删除临时数组中的项。

    但根据我所能收集到的,您可能应该使用哈希(对象)或其他东西,而不是数组结构。