首页 > 解决方案 > 为什么我无法访问我的 JS 对象属性?

问题描述

我正在尝试从 REST Api 重新格式化 JSON 数据,以便使用 d3 显示数据。d3 代码在一个角度组件内,但我认为这个问题与 javascript 更相关。我想使用的模板在这里:https ://bl.ocks.org/mbostock/3884955

我得到的数据被格式化为对象数组(我只想打印第一个),格式如下:

{"time":["2018-09-17T12:44:16.985Z","2018-09-17T12:44:17.982Z"],
    "counts":[
            [3539.8,3539.4],
            Arr(2),
            Arr(2),
            Arr(2),
            Arr(2)
    ]
}

--> 五个测量点,每个测量点有两个(在本例中)测量

这就是 d3 代码期望数据的方式:

(local var) data: {
id: string;
values: {
    date: any;
    count: any;
}[];

我试图实现的代码:

   var keys_all=d3.keys(data[0].counts);
   var measurementData = keys_all.map(function(id) {
   return {
    id: id.toString(),
    values: data[0].counts[id].map(function(d,i) {
      return {date: data[0].time[i], count: d};
    })
   };
   });  

当我使用 console.log() 时,结果正是我所期望的。但我无法在以下代码中访问属性“日期”和“时间”。

当我将鼠标悬停在结果变量上时,VS Code 只显示:

(local var) data: {
id: string;
values: any;
}[]

我还尝试记录字符串化的对象,这也有效。

有什么想法会出错吗?

标签: javascriptjsonangulard3.jsjsobject

解决方案


推荐阅读