необходимо распарсить текст CSV и создать:
1. массив с уникальными значениями(сделал двумя циклами)но если данных много то тормозит
2. как то его сгруппировать по второму столбцу чтоб данные шли в таком порядке:
1445112299; 109;255;0;0;17;1.5
1445112299; 109;255;3;0;6;0
1445112351; 2;255;3;0;11;Relay & Button
1445112351; 2;255;3;0;12;1.0
3. если данные со 2 по 5й столбец совпадают то в массив записывалось последнее по времени значение
4. построить дерево такого вида
109-
-------1;0;0;24;Ibooton key
-------2;0;0;15;LPE key
-------3;0;0;15;RMC key
2 -
------1;1;1;2;0"
------255;3;0;11;Relay & Button
подскажите как попроще все это сделать.
<textarea id='debugtty' rows='20' cols='100'>"1445095701; 0;0;3;0;9;gateway started, id=0, parent=0, distance=0
1445095701; 0;0;3;0;14;Gateway startup complete.
1445112299; 0;0;3;0;9;read: 109-109-0 s=255,c=0,t=17,pt=0,l=3,sg=0:1.5
1445112299; 109;255;0;0;17;1.5
1445112299; 0;0;3;0;9;read: 109-109-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0
1445112299; 109;255;3;0;6;0
1445112301; 0;0;3;0;9;read: 109-109-0 s=1,c=0,t=24,pt=0,l=11,sg=0:Ibooton key
1445112301; 109;1;0;0;24;Ibooton key
1445112301; 0;0;3;0;9;read: 109-109-0 s=2,c=0,t=15,pt=0,l=7,sg=0:LPE key
1445112301; 109;2;0;0;15;LPE key
1445112301; 0;0;3;0;9;read: 109-109-0 s=3,c=0,t=15,pt=0,l=7,sg=0:RMC key
1445112301; 109;3;0;0;15;RMC key
1445112351; 0;0;3;0;9;read: 2-2-0 s=255,c=3,t=11,pt=0,l=14,sg=0:Relay & Button
1445112351; 2;255;3;0;11;Relay & Button
1445112351; 0;0;3;0;9;read: 2-2-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
1445112351; 2;255;3;0;12;1.0
1445112351; 0;0;3;0;9;read: 2-2-0 s=1,c=0,t=3,pt=0,l=0,sg=0:
1445112351; 2;1;0;0;3;
1445112384; 0;0;3;0;9;send: 0-0-2-2 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:1
1445112384; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1
1445112384; 2;1;1;1;2;1
1445112406; 0;0;3;0;9;send: 0-0-2-2 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:0
1445112406; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0
1445112406; 2;1;1;1;2;0
1445112578; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0
1445112578; 2;1;1;1;2;0
1445112578; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0
1445112578; 2;1;1;1;2;0"
</textarea><br>
<script>
var Str = document.getElementById( 'debugtty' ).value;
//alert(Str);
var strres=Str.split("\n");
var tree=["1;2;3;4;5;6;7"];
for( var i = strres.length-2; 0 < i; i --){
var valcsv=strres[i].split(";"); //элементы строки лога
var fl=false;
for( var n = 0 ;n < tree.length; n ++){
var valtreecsv=tree[n].split(";"); //элементы строки дерева
if(valtreecsv[1]==valcsv[1] && valtreecsv[2]==valcsv[2] && valtreecsv[3]==valcsv[3]
&& valtreecsv[4]==valcsv[4] && valtreecsv[5]==valcsv[5] && valtreecsv[6]==valcsv[6] ){
fl=true
}
}
if (fl==false)
{
// alert(strres[i]);
tree.push(strres[i]);
}
}
alert(tree);
console.log(tree);
</script>
<textarea id='console' rows='20' cols='100'>"."</textarea><br>