2015-03-19 2 views
1

Я делаю диаграмму с Morris js. Я получаю список дат и значений с сервера. Но некоторые даты не существует, я хочу показать несуществующие даты со значением 0.Отображение нулевых значений как Zero

Например: если это мой список данных:

data: [ 
{ year: '2008', value: 20 }, 
{ year: '2009', value: 10 }, 
{ year: '2012', value: 50 } 

я получаю график, который идет прямо с 2009 по 2012 год, и не может видеть значения за 2010 и 2011 годы (это должно быть 0). enter image description here

и мне нужно, чтобы выглядеть следующим образом: enter image description here

+2

пожалуйста, вы можете показать нам код, который вы использовали для создания неисправного диаграммы? ваши «данные» не содержат информации за 2010, 2011, ... как насчет создания записей за эти годы (с «значением: 0')? –

+0

JSFiddle please –

ответ

2

Вы можете использовать следующий код, если data сортируется по годам:

var result = []; 
var previous = null; 
for (var i in data) { 
    var item = data[i]; 
    if (previous != null) 
     for (var year = previous + 1; year < parseInt(item.year); year++) 
      result.push({year: new String(year), value: 0}); 
    result.push(item); 
    previous = parseInt(item.year); 
} 

обходе данные, и из в предыдущем году до текущего года (за исключением), мы добавляем нулевые записи. Затем мы добавляем текущий элемент.

Json результат:

[ 
    {"year":"2008","value":20}, 
    {"year":"2009","value":10}, 
    {"year":"2010","value":0}, 
    {"year":"2011","value":0}, 
    {"year":"2012","value":50} 
] 
+0

Умм, я надеялся, что смогу избежать создания дополнительных данных. этот код кажется хорошим. Спасибо – ktw16

+0

Как насчет показа стоимости до сегодняшнего дня или в этом году? – hahahaha

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