2016-11-21 3 views
0

Ich verwende dieses Beispiel: http://www.highcharts.com/stock/demo/compare. Dieses Beispiel ist großartig. Es zeigt den Unterschied zwischen den Anfangsdaten (Index 0) und den aktuellen Daten. Zum Beispiel habe ich Daten wie:Highstock vergleichen So vergleichen Sie den aktuellen Datenpunkt mit dem vorherigen Datenpunkt

[ 
    [147893849384,20] (+0%) 
    [147893849385,40] (+200%) 
    [147893849386,400] (+2000%) 
    [147893849386,10] (-50%) 
] 

Ich mag nicht die Anfangsdaten die vorherigen Daten ändern, vergleichen.

[ 
    [147893849384,20] (+0%) 
    [147893849385,40] (+200%) 
    [147893849386,400] (+1000%) 
    [147893849386,100] (-75%) 
] 

Wie könnte ich das tun? Bitte helfen ~

Vielen Dank.

+2

Vergleich funktioniert nicht wie in Ihrem ersten Beispiel. Er berechnet die Differenz zwischen dem ersten und dem aktuellen Punkt in der Beziehung zum ersten Punkt. (curr - first)/first https://jsfiddle.net/kbcdkmok/ Dein Beispiel macht curr/first. Wenn Sie also möchten, dass der Vergleich wie in Highstock funktioniert, sollte er jedoch den vorherigen Punkt verwenden, statt den ersten, dann müssen Sie die Berechnung selbst durchführen. In diesem Fall ist die Berechnung von @ Alieser korrekt. – morganfree

Antwort

1

Ok, also nach den bereitgestellten Daten zu urteilen, wird nur der zweite Index jedes Arrays verglichen. So könnte man so etwas tun:

var data = [ 
 
    [147893849384,20], 
 
    [147893849385,40], 
 
    [147893849386,400], 
 
    [147893849386,10] 
 
]; 
 

 
for(var i = 0; i < data.length; ++i) { 
 
    // skip first item 
 
    if(i === 0) { 
 
    continue; 
 
    } 
 
    
 
    let prevDataPoint = data[i - 1][1]; 
 
    let currentDataPoint = data[i][1]; 
 
    
 
    // Multiply by 100 to get value as percentage. 
 
    let percentageDifference = ((currentDataPoint - prevDataPoint)/prevDataPoint) * 100; 
 
    
 
    console.log(i + " Percentage Difference: " + percentageDifference + "%"); 
 
}

+0

Danke Aliester, aber das möchte ich nicht machen. Nochmals vielen Dank ~ – TimLee

+0

@TimLee Würde es Ihnen etwas ausmachen, darauf hinzuweisen, wo meine Antwort von dem abwich, was Sie tun wollen? – Adrian

Verwandte Themen