Показать сообщение отдельно
  #2 (permalink)  
Старый 26.01.2012, 13:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от rrkhissamov
пройти весь массив logic по порядку (по id), взять данные из двух массивов start & end, провести вычисление по математической формуле указанной в фильтре и показать результат
Как вариант...

var model = {
	start: [
		{
			id: 1,
			sum: 100
		},
		{
			id: 2,
			sum: 200
		}
	],
	end: [
		{
			id: 1,
			sum: 300
		},
		{
			id: 2,
			sum: 400
		}
	],
	logic: [
		{
			id: 1,
			start: 1,
			end: 1,
			filter: 'start.sum*end.sum/5'
		},
		{
			id: 2,
			start: 1,
			end: 2,
			filter: 'start.sum*end.sum*4'
		}
	]
}
var i,start={},end={},o;
for (i=0; i<model.logic.length; i++) {
	o=model.logic[i];
	start.sum=getSum('start',o.start);
	end.sum=getSum('end',o.end);
	alert(o.id+') '+start.sum+', '+end.sum+' = '+eval(o.filter));
};
function getSum(Type,Id) {
	var i,o=model[Type];
	for (i=0; i<o.length; i++) {
		if (o[i].id==Id) {
			return o[i].sum;
		};
	};
};

Последний раз редактировалось ksa, 26.01.2012 в 13:52.
Ответить с цитированием