Доброго времени суток, пишу фильтр сортировки постов, с объектами не сильно знаком, но хочу все данные раскладывать по объектам, чтобы легче было работать. Суть такова, что аргумент
el это класс блоков которые нужно сортировать, а
count это количество выводимых блоков. Так вот в цикле я проверяю сколько нужно вывести блоков, задаю им параметры по условию и создаю часть полей объекта, после создаю остальные поля объекта без условия. После чего пробую запихнуть сформированный объект в массив, то есть должен выйти массив с определенным количеством объектов (по количеству постов) и каждый объект имеет различные значения полей, в зависимости от условий, но после проделанных операций вывожу в консоль массив, а все объекты в нем имеют одинаковые значения полей, хотя если я вывожу каждый объект перед записью в массив, то там все нормально, поля с разными значениями. Как заполнить массив объектами правильно чтобы не перезаписывался один и тот же объект на весь массив? Я наверняка, не знаю каких то свойств объекта, почему именно так получается.
function sorting(el,count){
var cache = [],
obg = {},
leftPos = 0,
topPos = 0;
$(el).each(function(idx){
if(idx < count){
var parentWidth = $(this).parent().width(),
elWidth = $(this).outerWidth(),
elPrevWidth = $(this).outerWidth();
$(this).data('show',1).addClass('show');
if(elWidth + elPrevWidth <= parentWidth){
$(this).css({'left':leftPos,'top':topPos});
obg.left = leftPos;
obg.top = topPos;
leftPos += $(this).outerWidth();
}
}
else{
obg.left = 0;
obg.top = 0;
}
obg.width = $(this).outerWidth();
obg.height = $(this).outerHeight();
obg.show = $(this).data('show');
obg.category = $(this).data('slug');
cache.push(obg);
});
}