javascript - 将空值显示为零

标签 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

最佳答案

如果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/

相关文章:

javascript - 使用 jquery 播放 mp3 文件

javascript - 从 jQuery Ajax 访问 JSON 结果

javascript - 如何通过使用 Eslint + Prettier 删除空行来区分 JSON 代码格式

JavaScript 未捕获类型错误?

javascript - Ajax 到 PHP 未定义索引作为数据传递 :

javascript - HTML5 游戏安全连接到数据库(停止用户手动 JavaScript)

javascript - 单击文本框选择所有数据?

javascript - 防止回发 - jquery/javascript

javascript - JSON透视图

javascript - Google Chrome 扩展程序上的 "Your browsing history"