[英]javascript object undefined error
我有动态AJAX JSON响应对象数据变量
var Data = {"categories":
[
{"Id":"2","CategoryName":"Womens"},
{"Id":"3","CategoryName":"Mens"},{"Id":"4","CategoryName":"Kids"},
{"Id":"5","CategoryName":"Home"},{"Id":"6","CategoryName":"Health and Beauty"},
{"Id":"7","CategoryName":"Seasonal Events"},{"Id":"10","CategoryName":"Model Shots"},
{"Id":"11","CategoryName":"Product Shots"},
{"Id":"12","CategoryName":"Accessories"},
{"Id":"13","CategoryName":"Tops"},{"Id":"14","CategoryName":"Spuds"},
{"Id":"15","CategoryName":"EVIAN"}
],
"brands_cat":{
"_bandCount":{"171": "BrandId" : "171", "ArchiveName": "HP",
"img_from_archive":"7"}
}
}
};
当我在循环中使用并检查undefined时 ,效果很好
for(var i in Data.categories){
if(typeof Data.categories[i] == 'undefined'){
alert(i+"Cat undefined");
}
}
但是当我使用typeof检查undefined时 ,
for(var i in Data.categories){
if(typeof Data.brands_cat._catCount[i].total == 'undefined'){
alert(i+"Cat total undefined");
}
}
它给了错误
TypeError: Data.brands_cat._catCount is undefined
是否可以使用typeof关键字检查未定义的多层JSON对象
_catCount
中没有brands_cat
。 所以,像这样改变它
if (Data.brands_cat.hasOwnProperty("_catCount")) {
for (var i in Data.brands_cat._catCount) {
if(typeof Data.brands_cat._catCount[i].total == 'undefined') {
仅当找到该代码时,它才会通过_catCount
进行迭代
在示例对象中,您提供的brands_cat并不总是存在。 迭代时,需要先检查该对象是否存在,然后再检查对象树中的所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.