我尝试使用 Object.keys() 从 JSON 文件中获取以下格式的键数组:
[
{
"Var1": "01-Dec-2019 00:00:00",
"Var2": 14.55169
},
{
"Var1": "01-Dec-2019 00:10:00",
"Var2": 14.74149
},
{
"Var1": "01-Dec-2019 00:20:00",
"Var2": 13.26103
}]
Javascript:
import data from "../Data/test3data.json";
var test = Object.keys(this.state.data).length;
当我评估它时,它返回总数据点的数量(在我的例子中为 40,000)而不是 2。我似乎不明白为什么。
奇怪的是,如果我尝试显示整个对象,我会收到以下错误
Objects are not valid as a React child (found: object with keys {Var1, Var2})
最佳答案
此行之后:
从“../Data/test3data.json”导入数据;
数据
等于:
[
{
"Var1": "01-Dec-2019 00:00:00",
"Var2": 14.55169
},
{
"Var1": "01-Dec-2019 00:10:00",
"Var2": 14.74149
},
{
"Var1": "01-Dec-2019 00:20:00",
"Var2": 13.26103
}]
所以它是一个对象数组。例如,data[0]
相等:
{
"Var1": "01-Dec-2019 00:00:00",
"Var2": 14.55169
}
因此,Object.keys(this.state.data)
是 [0, 1, 2]
,因为数组索引是键。 [0, 1, 2]
的长度是对象总数。
如果你想获取Var1
、Var2
键,你应该这样做:
Object.keys(this.state.data[0])
Object.keys(this.state.data[0]).length
关于javascript - ReactJS Object.keys().length 返回值的数量而不是键数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59790500/