Salve
Per creare un grafico in uno script uso un plugin di jquery FLOT, quest'ultimo necessita di un array di questo tipo:
Nell'elaborare i dati ho la necessità di limitare i valori del grafico ad un massimo di 10 valori. Quando una delle serie raggiunge il numero massimo, cancello i dati con la data più vecchia, ora il mio problema è che ci potrebbero essere delle serie in cui i dati si azzerano risultando non più visibili nel grafico ma rimangono vuoti all'interno della matrice. Io vorrei cancellare tutte le serie senza dati.codice:({98297:{data:[[1350329714000, 2848885]], label:"pippo"}, '@mine@':{data:[[1350329714000, 1325180]], label:"pluto"}, 151085:{data:[[1350329714000, 1002500]], label:"paperino"}})
Il codice che ho inserito è il seguente:
Mi chiedo se c'è la possibilità di evitare un array di appoggio per cancellare sucessivamente le serie vuote?codice://controllo la quantità dei dati inseriti var delData = 0; $.each(realTrend, function() //controlla il numero dei dati esistenti e salva la data per eliminare i dati { if(this.data.length > 10) { delData = this.data[0][0] return false; } }); if (delData > 0) //cancella il più vecchio valore se si supera il massimo dei valori da registrare { var jj = 0 //id array della serie da cancellare var indexDel = []; //arrey delle serie da eliminare $.each(realTrend, function() //cancella la data più vecchia { if(this.data[0][0] <= delData) this.data.shift() if(this.data.length <= 0) indexDel.push(jj) //se la serie è vuota la segna da cancellare jj++ }); $.each(indexDel.reverse(), function() //cancella serie di dati vuoti { realTrend..splice(this,1) }); }

Rispondi quotando