将空值显示为零

时间:2015-03-19 21:19:26

标签: javascript jquery json morris.js

我正在和Morris js做一张图表。 我从服务器获得日期和值的列表。 但是有些日期不存在,我想用值0显示不存在的日期。

例如: 如果这是我的数据列表:

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

1 个答案:

答案 0 :(得分: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}
]