javascript - For 循环工作并返回结果,但随后停止并返回 - TypeError : Cannot read property 'tag' of undefined

标签 javascript json for-loop

我设置了一个节点服务器,它发出 api 请求并获取一些 json 数据。我正在尝试将其中一些数据提取到数组中,当我将结果发送到控制台时它似乎正在工作,但随后程序停止并给我一个错误。这是我的代码。

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  var myArray = [];
  bodies = JSON.parse(body);
  let tag = '';
  let bond = '';
  let members = '';
  for(var i = 0; i <= bodies.memberCount; i++){

    let bond = bodies.members[i];
    let smoke = bond.tag;
    if(smoke === "undefined"){
      return;
    }else{

      console.log(smoke);
    }
  }
});

the output in the console is this- 

YYVPJ0G
2PJP89J2Q
9G8Y8022
JC90J0R
9LLYVQVQ
QV2R90V
JC9JVV
20RLC0QY
28LP0P8CG
2QYLGG9GY
2JRQQYQQJ
9YJVV0GJ
2RVP8U9
9VYG0VGQ
C2PGPYC
8CJ9CGG2
YGV0CRL
2VUV22VQY
R8G82YG
PPJUYQJ
28VYV2QJG
YC9LR0G9
8088RCYG
2JUJR2QVY
2YRPUC2Q
GJ0QP90
UGU9LR8
GJQRVC8C
UVVVJ80Q
LURGY8JV
2C9UJRP82
20J9VYVC0
82GUQLYRL
L2PCUYP
2CQUYPJRU
PYU98GU9
9QR2CCCLV
PP9V2P0
CGYLUG
8QLPJRYC2
Y2GYCLU
LQJ0QQ8
P2Y08LLP
P0RUVLG82
/home/phil/ClashApp/requests.js:34
let smoke = bond.tag;
                 ^

TypeError: Cannot read property 'tag' of undefined
    at Request._callback (/home/phil/ClashApp/requests.js:34:18)
    at Request.self.callback (/usr/lib/nodejs/request/index.js:148:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/usr/lib/nodejs/request/index.js:896:14)
    at emitOne (events.js:121:20)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> 
    (/usr/lib/nodejs/request/index.js:847:12)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)

它给出了我想要的所有结果,但在我将它们全部推送到 myArray 之前停止了程序......

最佳答案

“bond”不包含特定body.members[index]索引上的“tag”键。

添加一个类似这样的检查。

if(bond.tag !== undefined)
   smoke =  bond.tag

关于javascript - For 循环工作并返回结果,但随后停止并返回 - TypeError : Cannot read property 'tag' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55323746/

相关文章:

javascript - 使用axios强制下载GET请求

javascript - 页面加载时未触发复选框更改

javascript - 将变量内容分配给对象属性名称

php - 查询返回 3 行的相同数据

javascript - 函数 createIdentityMatrix(a,b)

javascript - 如何在 jquery 中为新添加的 div 添加点击事件?

javascript - 停止 div 背景的流式传输

java - 如何在android中使用JAVA代码创建JSON数据而不使用url?

scala - 在 Scala 中循环的正确方法

r - 在 for 循环中寻址变量数据帧的列