Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0') -- when all objects are not-undefined
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0') -- when all objects are not-undefined
使用 d3.js 进行数据可视化。我在 javascript 方面是个新手,但我来这里是为了找出问题的根源。
我正在尝试绘制一些基于电影的数据,其中每个数据点都是字符串数据类型。因此,我必须将日期转换为 Date 数据类型,将 Movie Ratings 转换为 Number 或 Float 数据类型,以便 d3 正确绘制数据,否则会出错。
差不多吧,数据是存储在一个数组中的,这个数组保存着另外11个数组,每个影评人一个,其中每个影评人数组保存了237个对象对应当年观看的每一部电影,其中每个对象看起来像
{
"key": "Derek",
"Date": "2019-01-25T05:00:00.000Z",
"value": 5,
"Movie": "The Butterfly Effect",
"Pickedby": "Dan"
}
其中key是影评人,Pickedby是挑选电影的人。
这是我用来将 1/25/2019
之类的日期转换为 "2019-01-25T05:00:00.000Z"
的代码
并试图将值项(从字符串)转换为数字或浮点数。 (有些评分可以是 3.5、6.5 等)
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[i][j].value)
}
}
代码的日期转换行按预期工作。
但是,将 value
项转换为数字或浮点数会导致出现 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0')
错误。
事实是,整个数组中的所有值项数据都是一个字符串。没有未定义的问题。当然,有些值是 (x's) 或其他一些字母字符,但至少应将其转换为 NaN,并且它适用于某些。
根据我提供的信息,您对为什么会出现此错误有任何想法吗?我总能提供更多细节。
谢谢!
代码中似乎有错字,您没有在转换为 Number 的过程中访问正确的值。
而不是:
series[j][i].value = Number(series[i][j].value)
应该是:
series[j][i].value = Number(series[j][i].value)
使用 d3.js 进行数据可视化。我在 javascript 方面是个新手,但我来这里是为了找出问题的根源。
我正在尝试绘制一些基于电影的数据,其中每个数据点都是字符串数据类型。因此,我必须将日期转换为 Date 数据类型,将 Movie Ratings 转换为 Number 或 Float 数据类型,以便 d3 正确绘制数据,否则会出错。
差不多吧,数据是存储在一个数组中的,这个数组保存着另外11个数组,每个影评人一个,其中每个影评人数组保存了237个对象对应当年观看的每一部电影,其中每个对象看起来像
{
"key": "Derek",
"Date": "2019-01-25T05:00:00.000Z",
"value": 5,
"Movie": "The Butterfly Effect",
"Pickedby": "Dan"
}
其中key是影评人,Pickedby是挑选电影的人。
这是我用来将 1/25/2019
之类的日期转换为 "2019-01-25T05:00:00.000Z"
的代码
并试图将值项(从字符串)转换为数字或浮点数。 (有些评分可以是 3.5、6.5 等)
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[i][j].value)
}
}
代码的日期转换行按预期工作。
但是,将 value
项转换为数字或浮点数会导致出现 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0')
错误。
事实是,整个数组中的所有值项数据都是一个字符串。没有未定义的问题。当然,有些值是 (x's) 或其他一些字母字符,但至少应将其转换为 NaN,并且它适用于某些。
根据我提供的信息,您对为什么会出现此错误有任何想法吗?我总能提供更多细节。
谢谢!
代码中似乎有错字,您没有在转换为 Number 的过程中访问正确的值。
而不是:
series[j][i].value = Number(series[i][j].value)
应该是:
series[j][i].value = Number(series[j][i].value)