2016-11-21 6 views
0

Я использую этот пример сравнения: http://www.highcharts.com/stock/demo/compare. Этот пример замечательный. Он показывает разницу между начальными данными (индекс 0) и текущими данными. Например, у меня есть данные, такие как:Сравнение Highstock Как сравнить текущую точку данных с предыдущей точкой данных

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

Я хочу изменить сравнение предыдущих данных, а не начальных данных.

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

Как я могу это сделать? Пожалуйста, помогите ~

спасибо.

+2

Сравнение не работает, как и в первом примере. Он вычисляет разницу между первой и текущей точкой в ​​отношении к первой точке. (сначала - первая)/первая https://jsfiddle.net/kbcdkmok/ Ваш пример - curr/first. Поэтому, если вы хотите, чтобы сравнение работало так же, как в Highstock, но оно должно занимать предыдущую точку, а не первое, тогда вам нужно делать вычисления самостоятельно. В этом случае расчет, предоставленный @Aliester, является правильным. – morganfree

ответ

1

Хорошо, поэтому судя по предоставленным данным, это только сравнение второго индекса каждого массива. Таким образом, вы могли бы сделать что-то вроде этого:

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

Спасибо, Алистер, но это не то, что я хочу сделать. Еще раз спасибо ~ – TimLee

+0

@TimLee Не могли бы вы указать, где мой ответ отклонился от того, что вы хотите сделать? – Adrian

 Смежные вопросы

  • Нет связанных вопросов^_^