javascript - 检查javascript数组值不为空

标签 javascript json

我对检查 json 响应中的数组值是否为空感到有点困惑。

{
  "status": "success",
  "message": "All pages re-ordered",
  "content": {
    "_wysihtml5_mode": "1",
    "Page": {
        "title": "cover",
        "page_text": "dfvdfvdfvdfvdv story go daddy xxx",
        "storyborad_img": "1jhkjh.png",
        "background_url": "kjbj.png",
        "newBackground_url": "",
        "text_font": "arial",
        "id": "30",
        "book_id": "38",
        "newStoryborad_img": {
            "name": "1jhkjh.png",
            "type": "image\/png",
            "tmp_name": "\/Applications\/MAMP\/tmp\/php\/phpvyf8Xx",
            "error": 0,
            "size": 185607
        }
    },
    "User": {
        "username": "testuser"
    }
  }
}

我已经尝试检查 typeof array == undefined.length 但它们都告诉我 else 语句中的内容 newBackground_url

var page = $.parseJSON(xhr.responseText.replace('</p>', ''));
var imageType;
if(page.content.Page.newStoryborad_img.length > 0) {
    imageType = page.content.Page.newStoryborad_img.name;
}
else {
    imageType = page.content.Page.newBackground_url.name;
}

最佳答案

这取决于。根据您的示例,您将返回一个对象 "newStoryborad_img": {...}

在这种情况下,您需要使用 typeof(page.content.Page.newStoryborad_img) != 'undefined'

演示类型:http://jsfiddle.net/gunderjt/cn2cs/

但是如果您正在寻找对象"newStoryborad_img": [{...}]数组(请注意括号)。然后检查数组中是否存在任何对象(假设您返回一个空数组)

page.content.Page.newStoryborad_img.length > 0 就是你想要的

演示长度:http://jsfiddle.net/gunderjt/cn2cs/1/

关于javascript - 检查javascript数组值不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273810/

相关文章:

javascript - 如何通过滚动在页面的特定部分执行 jquery 插件?

PHP 添加 mysql-results double 到数组。

arrays - 类数组错误 - '' 表达式类型不明确,没有更多上下文”

javascript - 在 window.Unload 事件上将用户事件发布到服务器是个好主意吗?

python - 如何对 pandas 系列的元素进行条件分支?

jquery - ASP.NET MVC 3 Razor jQuery 完整日历 JSON 日期时间格式

java - 如何将字符串转换为JsonPatch?

javascript - Slick 轮播合并的问题

javascript - jQuery 切换功能使文本变形

javascript - 如何通过 id 或 class 区分 popover