小编Kie*_*ung的帖子

ChartJS 轴刻度回调函数中的条件未返回预期的标签

我有一个包含一年中每一天数据的图表,我想将 x 轴简单地显示为月份。

我设置了以下回调函数,它(粗略地)从标签集中获取月份,检查它是否已经存在,如果不存在,则将其作为轴标签返回

let rollingLabel;
...
function(label, index, labels) {
    let _label = label.replace(/[0-9]/g, '');
              
    if (rollingLabel != _label) {
        rollingLabel = _label;
        return rollingLabel;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它只返回预期的四个标签中的两个。

更让我困惑的是,如果我console.log(rollingLabel)在条件中添加,我可以看到变量正在按照我预期的方式更新,但它没有返回值,或者它是,并且图表由于任何原因没有拾取它。更令人困惑的是,如果我取消注释第 48 行,// return _label图表会更新所有标签,因此我不认为这是图表的最大/最小设置的问题。

如果有人有任何想法,我将不胜感激。我已经盯着它看了好几个小时了!

以下代码片段的预期输出应具有以下 x 轴标签:

八月 | 九月 | 十月 | 十一月

let rollingLabel;
...
function(label, index, labels) {
    let _label = label.replace(/[0-9]/g, '');
              
    if (rollingLabel != _label) {
        rollingLabel = _label;
        return rollingLabel;
    }
}
Run Code Online (Sandbox Code Playgroud)
const canvas = document.getElementById('chart');
const ctx    = …
Run Code Online (Sandbox Code Playgroud)

chart.js

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

chart.js ×1