繁体   English   中英

ReactJS Object.keys().length 返回值的数量而不是键数组的长度

[英]ReactJS Object.keys().length returning number of values rather than length of array of keys

我正在尝试使用 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})

在这一行之后:

import data from "../Data/test3data.json";

data等于:

[
{
    "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]长度是对象总数。

如果你想获得Var1Var2键,你应该这样做:

Object.keys(this.state.data[0])

Object.keys(this.state.data[0]).length

this.state.data是一个数据点数组。

Object.keys(this.state.data)返回数组中所有这些数据点的索引。

Object.keys(this.state.data).length返回总点数。

要访问此数组的特定项,您需要使用 fe this.state.data[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM