将空值显示为零

Showing null values as Zero

我正在用 Morris js 制作图表。 我从服务器获取日期和值的列表。 但是有些日期不存在,我想显示值为0的不存在的日期。

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

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

我得到一个直接从 2009 年到 2012 年的图表,看不到 2010 年和 2011 年的值(应该是 0)。

我需要它看起来像这样:

你可以使用下面的代码,如果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}
]