javascript - 过滤从当月第一天到当前日期的日期

标签 javascript arrays charts chart.js

我有一个从 JSON API 提取数据的图表。我只想显示从月初到当前日期的日期。

开始日期是该月的第一天,结束日期是当前日期

我尝试了以下操作,但它返回未定义。 我请求有关此代码的帮助。

谢谢。

下面是我的代码。

        let dates = [];
let confirmed = [];
let recovered = [];
let deaths = [];

var today = new Date();
var TodayDate = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();

var startDate = '01-04-2020'; //YYYY-MM-DD
var endDate = TodayDate; //YYYY-MM-DD

var getDateArray = function(start, end) {
    var arr = new Array();
    var dt = new Date(start);
    while (dt <= end) {
        arr.push(new Date(dt));
        dt.setDate(dt.getDate() + 1);
    }
    return arr;
}

var dateArr = getDateArray(startDate, endDate);


fetch("https://pomber.github.io/covid19/timeseries.json")
  .then(response => response.json())
  .then(data=> {
    data["South Africa"].forEach(o => {
      dates.filter(function() {
        o.date==dateArr;
      }).push(o.date);
      confirmed.push(o.confirmed);
      recovered.push(o.recovered);
      deaths.push(o.deaths);
    })
    new Chart(document.getElementById('myChart'), {
      type: 'line',
      data: {
        labels: dates,
        datasets: [{
            label: 'Confirmed',
            borderColor: 'orange',
            backgroundColor: 'orange',
            fill: 'false',
            data: confirmed
          },
          {
            label: 'Recovered',
            borderColor: 'green',
            backgroundColor: 'green',
            fill: 'false',
            data: recovered
          },
          {
            label: 'Deaths',
            borderColor: 'red',
            backgroundColor: 'red',
            fill: 'false',
            data: deaths
          }
        ]
      },
      options: {
        responsive: true,
        maintainAspectRatio: false,
        title: {
          display: true,
          text: 'COVID-19 / Eswatini Time Series'
        }
      }
    });
  });
    </script>

最佳答案

这为您提供了预期日期之间来自 api 的列表数据

var today = new Date();
var firstDay = new Date(today.getFullYear(), today.getMonth(), 1);


var getDateArray = function(start, end) {
    var arr = new Array();
    var dt = start;
    while (dt <= end) {
        arr.push(dt.getFullYear()+'-'+(dt.getMonth()+1)+'-'+dt.getDate());
        dt.setDate(dt.getDate() + 1);
    }
    return arr;
}

var dateArr = getDateArray(firstDay, today);

getDatas("South Africa");

function getDatas(counryName){
  fetch("https://pomber.github.io/covid19/timeseries.json")
    .then(response => response.json())
    .then(data=> {
        var categories=[];
        var confirms=[];
        var recovers=[];
        var result = data[counryName].filter(function(item) {
         
          return dateArr.includes(item.date); 
        })
        result.forEach(item=>{
           categories.push(item.date);
           confirms.push(item.confirmed);
           recovers.push(item.recovered);
        })
       
        var options = {
          type: 'line',
          data: {
            labels: categories,
            datasets: [
              {
                label: '# of Confirmed',
                data: confirms,
                borderWidth: 1
              },	
              {
                label: '# of Recovered',
                data:recovers,
                borderWidth: 1
              }
            ]
          },
          options: {
            scales: {
              yAxes: [{
                ticks: {
                  reverse: false
                }
              }]
            }
          }
        }

        var ctx = document.getElementById('chartJSContainer').getContext('2d');
        new Chart(ctx, options);
         console.log(result);
      });

}


    
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.js"></script>
<body>
    <canvas id="chartJSContainer" width="600" height="400"></canvas>
</body>

关于javascript - 过滤从当月第一天到当前日期的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61444881/

相关文章:

android - 在 Android 中使用 openGL 绘制动态图形

javascript - 为 if window.location.href.indexOf() 使用变量

javascript - 移动到另一个页面时加载外部js

javascript - 只从mysql数据库中获取最后一条记录

javascript - javascript中的二维数组通过ajax发布到服务器

python - 保证 numpy.ndarray 的最小维数 (ndim) 的函数

Python NumPy : replace values in one array with corresponding values in another array

java - 将新引用附加到数组?

javascript - Highstock - 如何移动 X 轴

javascript - Flot 折线图时间 xaxis 系列固定标签