javascript - 如何获取特定年份的 json 数据?

标签 javascript json highcharts

我有一个包含年份及其值的数据结构 json,我会将其显示在我的 Highcharts 上。

如何在年份之间过滤它?例如,如果我在下拉列表中选择 2016 年至 2018 年,它将仅显示 2016 年、2017 年和 2018 年的数据。

这是我的数据结构

[
{
    "New_Students": "321",
    "NSYEAR": "2014",
    "NSterm": null,
    "NStermCat": null,
    "NSCareer": null,
    "NSProgDescr": null,
    "NSStudent": null
},
{
    "New_Students": "1923",
    "NSYEAR": "2015",
    "NSterm": null,
    "NStermCat": null,
    "NSCareer": null,
    "NSProgDescr": null,
    "NSStudent": null
},
{
    "New_Students": "293",
    "NSYEAR": "2016",
    "NSterm": null,
    "NStermCat": null,
    "NSCareer": null,
    "NSProgDescr": null,
    "NSStudent": null
},
{
    "New_Students": "29",
    "NSYEAR": "2017",
    "NSterm": null,
    "NStermCat": null,
    "NSCareer": null,
    "NSProgDescr": null,
    "NSStudent": null
},
{
    "New_Students": "524",
    "NSYEAR": "2018",
    "NSterm": null,
    "NStermCat": null,
    "NSCareer": null,
    "NSProgDescr": null,
    "NSStudent": null
}
    ]

这是我到目前为止的输出。

enter image description here

这是我获取 json 数据的代码

 var strCampus = "<%=MyProperty%>";
    var MyUpdateDate = "<%=UpdateDate%>";
    var ParamYear;
    var OnClickYearVal;
    var Year = [];
    var user_data = [];
    //Rdata.ParamYear = ParamYear;

 var drill_down_data = [];
    $(function () {
        $.getJSON('http://localhost:37590/get_NSData/' + strCampus, function (jsonData) { 


            const data = jsonData
            console.log(data);


let categories = [],
  series = [],
  i,
  j;
  var chartSeriesData = [];
  var chartDrilldownData = [];

     for (i = 0; i < data.length; i++) {

          categories[i] = data[i].NSYEAR + '-' + [parseFloat(data[i].NSYEAR) + 1];
          Year = [data[i].NSYEAR]
          series.push({
          name: [+data[i].NSYEAR] + ' School Year',
          data: [{ y: +data[i].New_Students }],

      });

      for (j = 0; j < i; j++) {
        series[i].data.unshift(null);
      }

  }

提前感谢您的帮助。

最佳答案

您可以使用 setExtremes 轴方法将下拉事件与图表范围绑定(bind):

var chart = Highcharts.chart('container', {
    ...,
    xAxis: {
        minRange: 0,
        ...
    }
});

document.getElementById('selectFrom')
    .addEventListener('change', function() {
        chart.xAxis[0].setExtremes(Number(this.value), chart.xAxis[0].max);
    });

document.getElementById('selectTo')
    .addEventListener('change', function() {
        chart.xAxis[0].setExtremes(chart.xAxis[0].min, Number(this.value));
    });

现场演示:http://jsfiddle.net/BlackLabel/xevgsjdo/

API引用: https://api.highcharts.com/class-reference/Highcharts.Axis#setExtremes

关于javascript - 如何获取特定年份的 json 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490467/

相关文章:

json - 如何在列上分组,数组在另一列上聚合并创建由分组列键控的单个 JSON 对象

asp.net - 在 Visual Studio 中禁用浏览器链接选项是否明智?

javascript - 克隆元素更改事件行为

javascript - 如何继续在同一个 csv 文件上写入?

javascript - "Uncaught SyntaxError: Unexpected token :"JSONP 响应

ruby-on-rails - 从 Rails 应用程序为 JSON 创建通用模板

javascript - 重绘Highchart系列方法。 Vue.js

highcharts - 如何设置 highcharts 中 x 轴标签的格式

javascript - 使用 Google Apps 脚本获取 gmail 地址,错误 : redirect_uri_mismatch

javascript - 为什么 slice() 显示错误但代码运行正常?