2 seanphang seanphang 于 2016.02.23 06:04 提问

nodejs 判断 数组为空的 json数据时,一直报错undefined

对不起各位大神,请不要恨铁不成钢,我真心不懂这个简单的初级问题。
我自己在做一个API小程序,用nodejs的request包抓取了许多json数据。
问题简单的来说就是,我需要判断一个有时候有数值,有时候却为空的属性,属性名为deliverTime,
当deliverTime存在的时候,抓取这个json属性,当deliverTime不存在的时候,不抓取。
然而,如果我的判断语句为: if(body.data.deliverBills[0].deliverTime){console.log(body.data.deliverBills[0].deliverTime;}else{console.log(“不存在deliverTime”);}
如果deliverTime存在还好,会正常运行。
但一旦不存在的时候,似乎轮不到这个判断函数运行,就会因为deliverTime不存在直接先报错,报错内容为:
TypeError: Cannot read property ‘deliverTime’ of undefined
at Request._callback (c:\node\syncec9.js:126:34)
at Request.self.callback (c:\node\node_modules\request\request.js:199:22)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request. (c:\node\node_modules\request\request.js:1036:10)
at emitOne (events.js:82:20)
at Request.emit (events.js:169:7)
at IncomingMessage. (c:\node\node_modules\request\request.js:963:

at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)

求大神们开导调教

1个回答

caozhy
caozhy   Ds   Rxr 2016.02.23 07:06
已采纳

if ('deliverTime' in body.data.deliverBills[0])
,,,
http://shifahaicool.blog.163.com/blog/static/35093326200910309248953/

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!