Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2012, 13:04
Новичок на форуме
Отправить личное сообщение для kuzyara Посмотреть профиль Найти все сообщения от kuzyara
 
Регистрация: 06.01.2011
Сообщений: 8

подскажите алгоритм
Имеется большой кусок данных вида:
var data1 = [
[[1330150440,7],[1330150500,14],[1330150680,18],[1330150740,35],[1330150860,23],...],  // датчик1
[...],  // датчик2
[...],  // датчик3
...  // датчикN
];

Как его превратить в:
var data1 = [
[[1330150440,7],[1330150500,14],[1330150560,0],[1330150620,0],[1330150680,18],[1330150740,35],[1330150800,0],[1330150860,23],...], 
[...],
[...],
...
];


Как вы уже догадались, это показания датчиков во времени с интервалом 60 секунд(unixtime) в формате(структуре данных) библиотеки для построения графиков jquery.flot.js. Берутся из БД, в которой для экономии места удалены нулевые значения.

Подскажите, как вместо осутствующих значений подставить нули, с учетом того, что интервал может изменяться?

Ничего в голову не приходит

Последний раз редактировалось kuzyara, 22.11.2012 в 13:14.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2012, 13:32
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

http://javascript.ru/Array/sort
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2012, 13:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от kuzyara
Подскажите, как вместо осутствующих значений подставить нули
Не совсем понятно зачем "ставить" нули?
Если значение отсутствует - так это проверяется... А что показывать это уже вопрос второй...
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2012, 13:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от kuzyara Посмотреть сообщение
Имеется большой кусок данных вида:
var data1 = [
[[1330150440,7],[1330150500,14],[1330150680,18],[1330150740,35],[1330150860,23],...],  // датчик1
[...],  // датчик2
[...],  // датчик3
...  // датчикN
];
По-мне так лучше тогда вот так хранить

var data1 = [
{
   1330150440: 7,
   1330150500: 14,
   1330150680: 18,
   1330150740: 35,      
   1330150860: 23,
   ...
},  // датчик1
{...},  // датчик2
{...},  // датчик3
...  
{...}// датчикN
];


А лучше вообще вот как (если интервалы совпадают)

var data1 = {
   1330150440: [1,12,3,...,aN],
   1330150500: [7,10,4,...,aN],
   1330150680: [4,5,15,...,aN],
   ...
};
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2012, 09:37
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Имхо, обратный цикл в данном случае няшнее:
function placeZero( data ){
	var j = data.length;
	while(j--){
		var arr = data[j], i = arr.length;
		while(--i){
			var time1 = arr[i][0], time2 = arr[i-1][0];
			while((time1-=60) !== time2) arr.splice(i,0,[time1,0]);
		}
	}
}
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Волновой алгоритм Ли с 8-ми направлениями boy_cow Общие вопросы Javascript 6 04.10.2012 21:08
Подскажите как поступить. merzavchick jQuery 9 24.08.2012 23:57
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
Спецификация Ecma-262. Пункт 8.7.2 PutValue(V,W) не до конца ясен алгоритм. vandy3 Общие вопросы Javascript 0 09.01.2012 17:31
подскажите, как сделать индикатор «до начала загрузки страницы»? SergAG Элементы интерфейса 7 31.05.2011 19:53