-
22-07-2019 - |
题
确定。所以我的工作是从数据库中检索项目,并建立了一个画廊的应用程序。我做这个一吨的时候,它应该是简单的。
我遇到的问题,因为在这个画廊,我得到来自包括图像文件和其他文件分贝的结果。这么说吧,我不能改变什么,但闪光灯,所以我需要来检测,如果它是一个图像,并只显示它,如果它是。
我的问题是:如何地狱我可以从对象删除属性没有保持相同尺寸的对象?我用的计数()函数生成分页数据,所以不能只“空”它们,并且据我所知,删除()不是一个选项或者
我对这个解决办法是只创建另一个对象,筛选具有良好的项目中循环,然后弹出他们到另一个对象,但对象中的每个项目都是一个对象,我没有推()函数为对象。
因此,在绝望中,我使用的是增量的对象添加到使用索引(goodItemsObject [指数] = allItemsObject [对象])新的对象,但是,似乎是解决这个问题得到的一个非常可怕的方式。
下面是一些代码:
var filteredMO = new Object();
var newFile = 0;
for each(var file in mediaObject){
if(check_file(file)){
filteredMO[newFile] = file;
newFile++;
}
}
mediaObject = filteredMO;
check_file()只返回真或假,是的mediaObject所有充满对象。
我更喜欢做这样的:
for each(var file in mediaObject){
if(check_file(file)){
//remove_from_object_for_reals(mediaObject[file]);
}
}
我认识到,也许是不可能的(它会甩开for循环?),但类似的事情会是甜的。我很想能够让GC抓住所有这些无用之物悬了。
任何想法?
感谢,
杰西
解决方案
您正在使用现在存储你的对象什么叫做关联数组。你不能从关联数组中删除键值。你需要的是一本字典(其中AS3具有内置的一个的 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Dictionary.html )。
import flash.utils.Dictionary;
var dict:Dictionary = new Dictionary();
,那么你可以通过调用删除您辞典的键,
delete dict["myKey"]
不隶属于 StackOverflow