我正在尝试在javascript中使用Youtube的Gdata JSON响应。我的代码遍历播放列表并提取项目数据。但是对于少数几个视频,评分不在哪里投掷
“TypeError:item.gd $ rating is undefined”
有没有办法在访问元素之前进行检查。
这是带有i获取json响应的代码。
var avgrating = item['gd$rating']['average'];
var maxrating = item['gd$rating']['max'];
var minrating = item['gd$rating']['min'];
var numRaters = item['gd$rating']['numRaters'];
答案 0 :(得分:3)
您可以采取的一种避免错误的方法是
var rating = item['gd$rating'] || {}; // If it is undefined default it to empty object
var avgrating = rating['average']; //now if it is not present it will just give undefoned as value
var maxrating = irating['max'];
var minrating = rating['min'];
var numRaters = rating['numRaters'];
或明确检查:
var rating = item['gd$rating'], avgrating, maxrating;
if(rating)
{
avgrating = rating['average'];
maxrating =rating['max'];
...
}
请注意,在if条件中我们正在检查表达式的真实性,除 undefined,null,“”,false,0 之外的任何内容都将被视为true并将进入条件。但在这里你确定它既可以是一个对象,也可以一无所有,所以你可以依靠这个检查。