Хорошо. поэтому я работаю над приложением, которое извлекает элементы из БД и строит галерею. Я делал это много раз, и это должно быть просто.
У меня проблемы, потому что в этой галерее я получаю результаты из базы данных, которая включает в себя как файлы изображений, так и другие файлы. Скажем так, я ничего не могу изменить, кроме вспышки, поэтому мне нужно определить, является ли это изображение, и отобразить его, только если оно есть.
Мой вопрос: Как, черт возьми, я могу удалить свойство из объекта, не оставляя объект того же размера? Я использую функцию count () для генерации данных разбивки на страницы, поэтому я не могу просто 'обнулить' их, и, насколько я понимаю, delete () тоже не вариант.
Мое решение для этого состояло в том, чтобы просто создать другой объект, отфильтровать хорошие элементы с помощью цикла for, затем вставить их в другой объект, но каждый элемент в объекте является объектом, и у меня нет функции 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 мог захватить все эти бесполезные объекты.
есть идеи?
спасибо,
Джесси