繁体   English   中英

检查json Javascript / Jquery中是否存在数组

[英]Check if array exists in json Javascript/Jquery

我有来自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”,否则它将正常工作并继续下去。

有人知道如何解决这个问题吗?

感谢您的帮助!

之所以收到错误,是因为您想要检索...的第一个元素……什么都没有(twitter.statuses [key] .entities.media [0];媒体已经为null,并且您无法访问null的第一个元素)

尝试检查

if (typeof twitter.statuses[key].entities.media != "undefined") {
    ...

未定义的属性具有undefined类型和值,您可以像这样检查它:

if (twitter.statuses[key].entities.media !== undefined) {
    // ...
}

或像这样:

if (typeof twitter.statuses[key].entities.media !== "undefined") {
    // ...
}

我建议您始终初始化变量以检查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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM