d3.js数据可视化转换value字段报Cannot read properties of undefined错误求助
错误原因
你的两层循环索引在读取value字段时写反了:
- 外层循环变量
j对应series数组的11个影评人子数组,series[j]才是第j位影评人的电影列表 - 内层循环变量
i对应单个影评人列表里的237部电影,正确的单条电影对象访问路径是series[j][i]
你转换日期时用的series[j][i].Date是正确的,但转换value时误写为series[i][j].value。由于i的最大值为236,而series总长度只有11,当i≥11时series[i]本身就是undefined,尝试读取undefined[j]就会触发你遇到的Cannot read properties of undefined报错。
修正代码
for (let j = 0; j < series.length; j++) { for (let i = 0; i < series[j].length; i++){ series[j][i].Date = new Date(series[j][i].Date) // 修正索引顺序即可 series[j][i].value = Number(series[j][i].value) } }
如果需要过滤非数字的异常评分,可以额外加判断处理:
const parsedVal = Number(series[j][i].value) series[j][i].value = isNaN(parsedVal) ? null : parsedVal
内容的提问来源于stack exchange,提问作者nick_rinaldi
相关产品推荐
相关产品推荐

