![](/img/trans.png)
[英]NodeJS Difference Object.keys(array).length and array.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]
长度是对象总数。
如果你想获得Var1
、 Var2
键,你应该这样做:
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.