我有来自twitter api的json文件。 有时它确实有media [0]数组,有时也没有。 如果它,我想将数组添加到另一个数组,所以它提醒它,否则我希望它检查下一个。
这是我尝试的但是它还没有正常工作。
if(twitter.statuses[key].entities.media[0].media_url!=="Uncaught TypeError: Cannot read property '0' of undefined"){
console.log(twitter.statuses[key].entities.media[0].media_url);
}
它一直给出错误:Uncaught TypeError:无法读取未定义的属性“0” 如果媒体阵列不存在,否则它可以正常工作并且更进一步。
有人知道如何解决这个问题吗?
感谢您的帮助!
答案 0 :(得分:2)
您收到错误是因为您要检索...的第一个元素没有(twitter.statuses [key] .entities.media [0];媒体已经是null并且您无法访问第一个元素空)
尝试使用
进行检查if (typeof twitter.statuses[key].entities.media != "undefined") {
...
答案 1 :(得分:2)
未定义的属性具有undefined
类型和值,您可以像这样检查它:
if (twitter.statuses[key].entities.media !== undefined) {
// ...
}
或者像这样:
if (typeof twitter.statuses[key].entities.media !== "undefined") {
// ...
}
答案 2 :(得分:0)
我建议你始终初始化变量以检查null或未定义的值。 在你的情况下:
var media0 = twitter.statuses[key].entities.media[0] || null;
if(media0 != null){
if(media0.media_url != null)
console.log(twitter.statuses[key].entities.media[0].media_url);
else
console.log('twitter.statuses[key].entities.media[0].media_url is null or not defined');
}
else
console.log('twitter.statuses[key].entities.media[0] is null or not defined');