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

标签 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 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] 的长度是对象总数。

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

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/

相关文章:

css - react-bootstrap-table - 格式化 - 行高,文本换行

javascript - 没有react-dom可以使用react-core吗

reactjs - 如何在 Next.js 中使用 localStorage 而不会出现水合作用错误?

javascript - Facebook 的 react.js——对象不是函数

javascript - 带搜索的分页

javascript - 如何使用 JavaScript 并在 Kendo UI 模板中打印结果?

javascript - 请求动画帧问题

javascript - jQuery Carousel 插件显示不需要的边框

java - 从 Java servlet 中获取 Ajax 参数

javascript - 如何在 Jest 测试用例中默认模拟/考虑 javascript 原型(prototype)函数