JS数组判断问题

m83884436 2015-10-19 02:48:45
 code = { "a" : 1,  "b" : {  "c" : 3  }} 


上面这个数组写code..b.c会说 Cannot read property 'c' of undefined,因为这是个AJAX数组,有时候返回只有a,需要怎么解决呢
...全文
182 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
香蕉猪 2015-10-20
  • 打赏
  • 举报
回复
就用循环判断好啦,,,有就用没有就下一个循环不就好。。。
冰糖-雪梨 2015-10-19
  • 打赏
  • 举报
回复
使用前先加这一句
code.b = code.b || {};
木头海上漂 2015-10-19
  • 打赏
  • 举报
回复
你b对象都没有。。你认为在b对象下的c对象会存在吗?肯定undefined
Go 旅城通票 2015-10-19
  • 打赏
  • 举报
回复
放入try..catch
引用 12 楼 u014742080 的回复:
[quote=引用 6 楼 showbo 的回复:] 如果没有b,你调用前需要判断下
code = { "a" : 1,  "b" : {  "c" : 3  }} 

if(code.b)alert(code.b.c)
可以看看上面,如果数组{ "a" : 1, "b" : { "c" : { "d" : "2"} }} ,需要判断太多次了,有更方便的方法吗[/quote] 放入try..catch语句里面执行
m83884436 2015-10-19
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
如果没有b,你调用前需要判断下
code = { "a" : 1,  "b" : {  "c" : 3  }} 

if(code.b)alert(code.b.c)
可以看看上面,如果数组{ "a" : 1, "b" : { "c" : { "d" : "2"} }} ,需要判断太多次了,有更方便的方法吗
m83884436 2015-10-19
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
如果没有b,你调用前需要判断下
code = { "a" : 1,  "b" : {  "c" : 3  }} 

if(code.b)alert(code.b.c)
可以看看上面,如果数组{ "a" : 1, "b" : { "c" : { "d" : "2"} }} ,需要判断太多次了,有更方便的方法吗
m83884436 2015-10-19
  • 打赏
  • 举报
回复
引用 9 楼 zhoucc910311 的回复:
...


真的不可以,下面是数据




Object {code: Array[1], success: true}
Uncaught TypeError: Cannot read property 'warehouse' of undefined
temp1
Object {code: Array[1], success: true}code: Array[1]0: ObjectdeliveryDate: ObjectfinalDate: ""id: 2orderSchedule: nullproduct: ObjectbarCode: "8.72E+12"family: "ENERGIE"id: 94lifeCycle: "EOL"marketShortage: falsename: "XTORM COQUE BATTERIE DE SECOURS 2300 MAH MFI POUR IPHONE 5"priorityIndex: "16"productManager: "EZ"saftyStock: 0sku: "AM408"subFamily: "POWERBANKS"supplyStrategy: "ROUTE"worldStock: Array[0]length: 0__proto__: Array[0]__proto__: Objectquantity: 50status: ""__proto__: Objectlength: 1__proto__: Array[0]success: true__proto__: Object




zhoucc910311 2015-10-19
  • 打赏
  • 举报
回复
...
  • 打赏
  • 举报
回复
var code = { "a" : 1,  "b" : {  "c" : 3  }}; if(!code.e){console.info(1)}else{console.info(2)}
hch126163 2015-10-19
  • 打赏
  • 举报
回复
if(code.b){
code.b.c;
}
Go 旅城通票 2015-10-19
  • 打赏
  • 举报
回复
如果没有b,你调用前需要判断下
code = { "a" : 1,  "b" : {  "c" : 3  }} 

if(code.b)alert(code.b.c)
天际的海浪 2015-10-19
  • 打赏
  • 举报
回复

var code = { "a" : 1};
if(typeof code.b == "object")
	alert(code.b.c);
else
	alert("code.b不是一个对象");
m83884436 2015-10-19
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
var code = { "a" : 1,  "b" : {  "c" : 3  }}; code.b.c
实测无错误
我意思说当 code = { "a" : 1} ,当我调用code.b.c的时候,会报错,百度也找不到 JS的 array_key_exists函数..
m83884436 2015-10-19
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
其他代码贴出来看下,就你这个code,调用code.a不会报错的
我意思说当 code = { "a" : 1} ,当我调用code.b.c的时候,会报错
  • 打赏
  • 举报
回复
var code = { "a" : 1,  "b" : {  "c" : 3  }}; code.b.c
实测无错误
Go 旅城通票 2015-10-19
  • 打赏
  • 举报
回复
其他代码贴出来看下,就你这个code,调用code.a不会报错的

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧