Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2012, 09:26
Новичок на форуме
Отправить личное сообщение для rrkhissamov Посмотреть профиль Найти все сообщения от rrkhissamov
 
Регистрация: 26.01.2012
Сообщений: 2

Данные из массивов и логика для их вычесления
Добрый день, нужна Ваша помощь!
Имеется два массива start & end в которых есть число(sum) и уникальный номер(id). Есть третий массив (logic) в котором находиться уникальный номер строки (id), уникальный номер из массива start и end, и логика математического вычисления (filter). Требуется пройти весь массив logic по порядку (по id), взять данные из двух массивов start & end, провести вычисление по математической формуле указанной в фильтре и показать результат.

var model = {
	start: [{
		id: 1,
		sum: 500
	},{
		id: 2,
		sum: 500
	}],
	end: [{
		id: 1,
		sum: 500
	},{
		id: 2,
		sum: 500
	}],
	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 	
	}]

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

Сообщение от 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.
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2012, 11:39
Новичок на форуме
Отправить личное сообщение для rrkhissamov Посмотреть профиль Найти все сообщения от rrkhissamov
 
Регистрация: 26.01.2012
Сообщений: 2

Спасибо за интересное решение. Возможно при таком решение производить расчет в н-логике из данных полученных в логиках. Может что-то добавить в структуру массива. Как вариант:
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'
  },
  {
   id: 3,
   start: 0,
   end: 0,
   filter: 'logicId(1).sum + logicId(2).sum'
  }
]
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31