我对检查 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
就是你想要的
关于javascript - 检查javascript数组值不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273810/