Chart.js柱状图数据集生成报错:‘statement expected’问题求助
排查Chart.js数据集生成函数的语法错误
咱们先揪出这个错误的根源哈:你在使用Array.from()的时候犯了一个语法小错误,导致JavaScript解析器完全读不懂你的代码逻辑。
错误原因拆解
原代码里这一行就是问题核心:
Array.from(new Array(5){ return { name: 'Land', people: 200, backgroundColor: ["#3e95cd"] }; })
Array.from()的正确用法是接受两个参数:第一个是类数组/可迭代对象,第二个是可选的映射函数。但你在new Array(5)后面直接跟了大括号{},没加逗号分隔参数——这会让解析器误以为new Array(5)是一个独立语句,后面的{}是普通代码块。而代码块里的return语句没有被包裹在函数里,自然就触发了“statement expected”错误,毕竟单独在代码块里写return是不符合语法规则的。
修正后的代码
给你两种靠谱的写法,按需选就行:
写法一:规范使用Array.from的映射参数
function generateDataSets() { const returnValue = Array.from(new Array(5), () => { return { name: 'Land', people: 200, backgroundColor: ["#3e95cd"] }; }); return returnValue; }
写法二:更简洁的箭头函数写法
如果想让代码更紧凑,可以用箭头函数的隐式返回(注意要给对象加小括号包裹,避免被解析成代码块):
function generateDataSets() { return Array.from({ length: 5 }, () => ({ name: 'Land', people: 200, backgroundColor: ["#3e95cd"] })); }
两种写法都会生成一个包含5个相同结构对象的数组,刚好能满足你生成Chart.js柱状图数据集的需求。
内容的提问来源于stack exchange,提问作者Lennox
相关产品推荐
相关产品推荐

