подскажите алгоритм
Имеется большой кусок данных вида:
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. Берутся из БД, в которой для экономии места удалены нулевые значения. Подскажите, как вместо осутствующих значений подставить нули, с учетом того, что интервал может изменяться? Ничего в голову не приходит:( |
|
Цитата:
Если значение отсутствует - так это проверяется... А что показывать это уже вопрос второй... |
Цитата:
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],
...
};
|
Имхо, обратный цикл в данном случае няшнее:
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]);
}
}
}
|
| Часовой пояс GMT +3, время: 22:24. |