javascript - 我收到 TypeError 说 forEach 不是函数?
问题描述
我正在尝试使用 chartist.js 显示折线图。我曾经reduce()
从props
. 我在平均值对象中有键year
和值。average value
但我无法显示折线图,因为我无法在图表上看到任何线条,我收到类型错误。我已经创建了 React 组件,并在里面componentDidMount()
添加了我的折线图代码。我认为这个问题与 javascript/reactjs 而不是 chartist.js 有关
代码:
class Linechart extends Component {
constructor(props){
super(props);
}
componentDidMount(){
const totals = this.props.bowldata.reduce((a, {season, econ}) => {
if (!a[season]) {
a[season] = {sum: 0, count: 0};
}
if(econ !== null){
a[season].count++;
a[season].sum += parseInt(econ);
}
return a;
}, {});
const averages = {};
Object.keys(totals).forEach(key => {
averages[key] = totals[key].sum / totals[key].count;
});
console.log(averages);
const series = Object.values(averages);
const labels = Object.keys(averages);
const data = {
series:series,
labels:labels
}
this.linechart = new Chartist.Line('.ct-line-chart', data, options);
}
render(){
return(
<div>
<div className="col-md-3 col-xs-6 ct-line-chart">
{this.linechart}
</div>
</div>
)}
}
export default Linechart ;
使用.forEach()
我正在尝试使用sum/count
as avalue
和key
as创建新的对象数组year
。
解决方案
像这样更改您的代码,看看问题是否消失了。在文档中,它显示series
应该是一个多维数组。
const data = {
series:[series],
labels:labels
}
推荐阅读
- python - 如何将 numpy 1D 与 ND 数组相乘?
- laravel - 如果 Laravel ImplicitRouteBinding 完成,是否可以缓存查询?
- django-admin - 在 django admin 中向添加页面添加过滤器
- qt - 如何创建像 QWidget 这样的矩阵?
- c - 将数据放入 .text 时带有 gcc 警告的汇编器警告
- python - ValueError:时间数据“2006–01–01”与格式“%Y-%m-%d”不匹配
- python - 使用 lxml 的 tostring() 从 xml/html 中删除根标签
- jolt - 在 jolt 规范中添加具有相同键的对象内的数组
- io - OCaml 程序的意外周期性、非连续输出
- javascript - 如果数组中的项目与另一个数组中的项目重合,则替换它们