Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS Object.keys().length返回值的数量而不是键数组的长度_Javascript_Reactjs - Fatal编程技术网

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

Javascript ReactJS Object.keys().length返回值的数量而不是键数组的长度,javascript,reactjs,Javascript,Reactjs,我正试图使用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

我正试图使用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;
当我计算这个值时,它返回的是总数据点的数量(在我的例子中是40000),而不是2。我似乎不明白为什么

奇怪的是,如果我试图显示整个对象,我会得到以下错误

Objects are not valid as a React child (found: object with keys {Var1, Var2})

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

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

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


要访问此数组的特定项,您需要使用f.e.
this.state.data[0]
this.state.data
是一个数据点数组

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

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

要访问此数组的特定项,您需要在此行后使用f.e.
this.state.data[0]

从“./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
}]
所以它是一个对象数组。例如,
数据[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])。此行后的长度

从“./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
}]
所以它是一个对象数组。例如,
数据[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

它似乎不是一个数组,因为当我试图显示它时,React特别指出“×错误:对象作为React子对象无效(找到:具有键{Var1,Var2}的对象)。如果您想要呈现子对象集合,请改用数组。”@5---------它是一个数组。错误是因为它试图显示数组的第一个元素,该元素是具有键
Var1
Var2
的对象,因此不能用作子元素。但它正确地尝试在数组上迭代。如果将数据点数组转换为可以直接传递给React的格式,则可以显示它。它似乎不是数组,因为我尝试显示它时React特别指出“×错误:对象作为React子对象无效(找到:具有键{Var1,Var2}的对象)。如果要呈现子对象集合,请使用数组。”@它是一个数组。错误是因为它试图显示数组的第一个元素,该元素是具有键
Var1
Var2
的对象,因此不能用作子元素。但它正确地尝试在数组上迭代。如果将数据点数组转换为可以直接传递到React的格式,则可以显示它。