清除Flex ActionScript字典

Ste*_*Kuo 13 apache-flex actionscript-3

是否可以清除Flex flash.utils.Dictionary?我有一个Dictionary我想要清除(删除所有元素).

Jas*_*son 6

我不相信有明确的明确命令.

但是,您可以编写自己的循环遍历所有键并运行它

delete dict[key]; 
Run Code Online (Sandbox Code Playgroud)

或者你可以重新分配

dict = new  Dictionary()
Run Code Online (Sandbox Code Playgroud)


Her*_*rms 6

认为这会有效,但我不是100%肯定,因为你在迭代它时修改字典:

function clear(d:Dictionary):void {
  for(var id:* in d) {
    delete d[id];
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我通常只需要在需要清除一个字典时创建一个新的字典(尽管如果它在多个地方被引用,那么可能对你不起作用).

  • +1工作.通过两次运行测试它,在第一次运行后它是空的. (2认同)
  • 上面的代码有一个缺陷:'id'必须是NO类型,因为Dictionary可以将任何类型的对象作为键引用而不仅仅是像动态对象那样的字符串.上面的代码只会删除字符串引用! (2认同)