好啊。所以我正在开发一个从数据库中检索项目并构建图库的应用程序。我做了很多次,应该很简单。
我遇到了一些问题,因为在这个图库中,我从一个包含图像文件和其他文件的数据库中得到了结果。假设除了闪光灯我什么都不能改变,所以我需要检测它是否是一个图像,如果是,只显示它。
我的问题是:如果对象不保持相同的大小,我怎么能从对象中删除属性呢?我使用count()函数来生成分页数据,所以我不能只“空”它们,而且据我所知,delete()也不是一个选项。
我的解决方案是只创建另一个对象,用for-in循环过滤好的项,然后将它们弹出到另一个对象中,但对象中的每个项都是一个对象,并且我没有对象的push()函数。
因此,在绝望中,我使用一个增量来使用一个索引(gooditemsobject[index]=allitemsobject[object])将对象添加到新对象中,但这似乎是解决这个问题的一种非常可怕的方法。
下面是一些代码:
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()只返回true或false,mediaobject中都是对象。
我更喜欢这样做:
for each(var file in mediaObject){
if(check_file(file)){
//remove_from_object_for_reals(mediaObject[file]);
}
}
我意识到这可能是不可能的(它会抛出for循环吗?)但是类似的东西会很甜。我希望能让GC抓住所有挂在外面的无用对象。
有什么想法吗?
谢谢,
杰西