我正在用 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}
]
关于javascript - 将空值显示为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155228/