【发布时间】:2019-01-01 19:51:41
【问题描述】:
我正在开发一个使用 API 的 Nodejs 工具。 我的问题是我不明白为什么数组的前一个元素没有正确注册并且在迭代器递增时是“未定义”。
this.pptab = new Array();
this.tabplayers = new Array();
for (var i = 0; i < (argsname.length - 1); i++) {
osuApi.getUser({ "u": argsname[i], "m": argsmode.join('=') }).then(user => { //calling the osu!api
this.pptab[i] = user[0].pp_raw;
this.tabplayers[i] = user[0].username;
console.log("Player -1: " + this.tabplayers[i - 1]); // This displays "Undefined" in each iteration
});
}
【问题讨论】:
-
您是否意识到,对于第一个迭代元素(在索引 0 处),表达式计算 -1 并将其用作访问的索引,并且尚未定义该索引处的元素?
-
谢谢,我编辑了代码,使迭代器从 1 开始,我初始化了数组的第一个元素,但它仍然显示“未定义”...
-
@bastoo0 你仍然会遇到同样的问题,因为索引 [0] 也不会被定义
-
只有在迭代不是第一次(在您的情况下)时才能访问
this.tabplayers[i - 1]的值 -
argsname 数组中包含什么?
标签: javascript arrays node.js