给Chartjs赋值

时间:2018-03-29 17:24:19

标签: angular typescript chart.js

我有那个代码,它给出了每个日期在日期数组上出现的次数:

let month = [];
let current;
let count = 0;
chartDates = chartDates.sort()

for (var i = 0; i < chartDates.length; i++) {
    month.push(chartDates[i].split('-')[1]);
    if (chartDates[i] != current) {
        if (count > 0) {
            console.log(current + ' times ' + count);
        }
        current = chartDates[i];
        count = 1;
    } else {
        count++;
    }
}
if (count > 0) {
    console.log(current + 'times ' + count);
}

这给了我以下输出:

2010-02-08 times 1
2010-02-11 times 1
2010-03-05 times 1
2010-03-08 times 1
2017-09-19 times 3
2017-12-26 times 1

我想使用chart.js将这些值提供给一个条形图,“标签”是日期,“数据”是“每次发生日期..我尝试year = [];然后{{1只是为了给我一个日期而不重复  每个内部都有相同的日期,但是没有成功..

我该如何解决这个问题?

我的图表:

year.push(current);

1 个答案:

答案 0 :(得分:0)

所以我认为我找到了解决这个问题的95%的解决方案。 我创建了一个新的数组,希望我按下“发生”的当前计数,所以我有一对(日期 - 出现)   - 我现在有一个小问题,最后的日期重复!!并且那是因为最后的if(count&gt; 0),但如果我不推年,即使我的控制台日志给出正确的日期数组,我的char只显示3(?)我发布代码和打印od控制台日志和图表!

<强> TS

let month = [];
            let current;
            let count = 0;
            let year = [];
            let values = [];
           chartDates = chartDates.sort()

           for (var i = 0; i<chartDates.length; i++)
           {
               month.push(chartDates[i].split('-')[1]);
               if (chartDates[i] != current)
               {
                   if (count > 0)
                   {
                       //console.log(current + ' times ' + count);
                       values.push(count);
                   }
                   current = chartDates[i];
                   year.push(current);
                   count = 1;
               }
               else
                   {
                   count++;
                   }
           }
           if (count > 0)
           {
               //console.log(current + 'times ---' + count);
               //year.push(current);
               values.push(count);
           }


           console.log('datas: '+year+ ' contadores '+ count);
ts中的

图表 var myChart = new Chart(ctx,{                类型:'bar',                数据:{                    标签:年,                    数据集:[{                        标签:年,                        数据:值     ...

控制台日志:

  

DATAS:   2010-02-08,2010-02-11,2010-03-05,2010-03-08,2017-09-19,2017-12-26   contadores 1

输出: enter image description here

FIX EDIT:如果添加了year.push(当前);它会修复,即使它显示重复的最后一个标签,但没有任何价值。