You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chart.js接入数据库数组时自定义数据结构的配置方法咨询

问题根因

你当前写法的核心问题是结构化数据的格式不符合Chart.js的要求:

  • 你现在的datasets[0].data数组里仅包含1个对象,且把完整的catName、numPostPerCat两个数组直接作为属性值传入
  • Chart.js的对象格式数据要求数组内每一个对象对应一条独立的条形数据,即每个对象里存单个分类名称 + 对应的单个数值,而不是把整个分类数组、数值数组塞进同一个对象里。

解决方法

先将两个独立的数组合并为符合要求的结构化数据数组,再传入配置即可:

步骤1:合并数组生成结构化数据

// 遍历分类名称数组,按索引匹配对应的数值,组装成要求的对象结构
const structuredData = catName.map((cat, index) => ({
  Terris: cat,
  cuantos: {
    cantidad: numPostPerCat[index]
  }
}))

步骤2:替换原有datasets的data属性

const data2= {
  datasets: [{
    label: 'Terri',
    backgroundColor: 'rgb(166,166,166)',
    borderColor: 'rgb(166,166,166)',
    data: structuredData, // 替换为生成的结构化数据
    borderWidth: 2,
    barThickness: 3,
    datalabels: {
      color:'gray',
      anchor: 'end',
      align: 'top',
    },
  }]
};

注意事项

你代码里的parsing配置是Chart.js 3.0及以上版本才支持的特性,如果你当前使用的是2.x版本的Chart.js,需要先升级到3.0+版本该配置才会生效。

内容的提问来源于stack exchange,提问作者Daniel Leandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:57:04