javascript - 访问对象内的数组时出现错误无法读取未定义的属性“1”
问题描述
我正在用这种格式写我的对象
var eqres = [{"datapoints": [[1, 1530034200], [1, 1530034200]]}]
我正在尝试通过访问它来更新 1530034200 和 1530034200 的值
eqres[0].datapoints[1][1] , eqres[0].datapoints[0][1]
我收到错误无法读取未定义的属性“1”
我正在从 api 获取数据并将其写入 eqres
var eqres ={};
var eqres = [{'datapoints': [] }];
var ee = this.doRequest({
url: urll,
headers:
{
'X-xxx': this.uname,
'Accept': 'application/json',
'X-xxx': timestamp,
'X-xxx': hash_string
},
method: 'GET'}).then(response => response.data.data.row)
.then(function(j)
{
var ff = j;
for (var i in ff)
{
eqres[0]['datapoints'].push([ff[i].col[1],ff[i].col[0]]);
};
})
我正在尝试像这样更新它
var now = Date.now();
for (var i = eqres.length -1; i >= 0; i--)
{
var series = eqres[i];
var decreaser = 0;
for (var y = series.datapoints.length -1; y >= 0; y--)
{
series.datapoints[y][1] = Math.round((now - decreaser) /1000) * 1000;
decreaser += 50000;
}
}
解决方案
如果您将eqres
数据点直接硬编码到变量中,则您的代码可以正常工作。我在想的是您正在尝试在异步 API 请求完成之前访问数据点。then
在您的 API 完成后,尝试在另一个调用中运行您的修改代码,如下所示:
var eqres ={};
var eqres = [{'datapoints': [] }];
var ee = this.doRequest({
url: urll,
headers:
{
'X-xxx': this.uname,
'Accept': 'application/json',
'X-xxx': timestamp,
'X-xxx': hash_string
},
method: 'GET'}).then(response => response.data.data.row)
.then(function(j) {
var ff = j;
for (var i in ff)
{
eqres[0]['datapoints'].push([ff[i].col[1],ff[i].col[0]]);
};
})
.then(function() {
var now = Date.now();
for (var i = eqres.length -1; i >= 0; i--)
{
var series = eqres[i];
var decreaser = 0;
for (var y = series.datapoints.length -1; y >= 0; y--)
{
series.datapoints[y][1] = Math.round((now - decreaser) /1000) * 1000;
decreaser += 50000;
}
}
});
现在,当您尝试修改它们时,您的数据点将可供您使用。
推荐阅读
- unix - Python to fifo 不刷新
- javascript - Electron 中 React Express 应用程序的 CSS 在所有导入的 CSS 模块的代码上引发 SyntaxError
- python - Python & Pandas:结构化条件
- html - 使用 CSS 为语义 HTML 表格添加边框和边距而不更改标记
- css - 使用速度从 html 到 pdf 的分页后更改为横向
- java - Java 面试题:从 2 个数组进行组合,没有重复,输出必须是随机的
- python - Tabula-py:仅将 1/45 页面转换为 .csv 文件
- volttron - 我们可以通过消息总线将文件发送到另一个代理吗
- excel - 使用 MS Graph API 更新 Excel 表中的多行
- xcode - XCode 13 - 为开发语言生成 Localizable.strings 文件(在我的情况下为英语),而不使用 genstrings