JavaScript 在 JSON 对象中移动如何判断元素是否存在
javascript moving through json object how to tell if an element is present
我正在遍历一个 json 对象,但由于一个额外的元素而失败。
请参阅下面的代码
{
"rootLayout":"main",
"layoutDescriptions":[
{
"type":"Panel",
"label":"Repeating Groups By Subform",
"layout":"SimpleForm",
"content":[
{ "type":"label", "constraint":"newline", "text":"Contacts" },
{ "type":"repeatableGroup", "property":"contacts", "contentRef":"ContactSubForm" }
]
},
{
"type":"Panel",
"label":"",
"container" : {
"type":"Panel",
"layout":"SimpleForm",
"content":[
{ "type":"label", "constraint":"newline", "text":"Contact Name" },
{ "type":"ListView", "property":"contactName", "listProps":["contactName","telephone","email"] }
]
}
},
它在数组中的第二个元素上失败 我正在使用以下内容来获取结果
data.layoutDescriptions[0].container.content[i].content
我知道它停止了,因为在
data.layoutDescriptions[0].container.content[1].content
它期望
data.layoutDescriptions[0].container.content[1].container.content
所以我的问题是我怎么说如果容器存在,我怎么做这个,否则做这个。
我目前正在尝试这个不起作用。
var contentObjects = data.layoutDescriptions[0].container.content[1].content;
if(contentObjects.container){
alert("container exists");
}
else{
alert("nope");
}
谢谢。
使用 hasOwnProperty 来检查对象是否存在自己的属性:
var contentObjects = data.layoutDescriptions[0].container.content[1];
if(contentObjects.hasOwnProperty('container'){
alert("container exists");
}
else{
alert("nope");
}
问题是并非数组中的每个对象layoutDescriptions
都具有属性container
。当你循环访问第一个对象时,它会查找container
,找不到任何内容,然后在undefined
上搜索content
,抛出错误。
此外,在 data.layoutDescriptions[0].container.content[1]
中,您没有 content
属性。 contentObjects
设置为undefined
,因此contentObjects.container
将失败。
相关文章:
- 如何通过溢出来判断元素被切断了多少像素:隐藏在父级上
- JavaScript 在 JSON 对象中移动如何判断元素是否存在
- 如何使用.find()判断某个元素是否有子元素
- 如何判断数组是否包含另一个特定数组,而不仅仅是其元素
- 如何判断视口内元素的哪一部分
- 任何判断浮动元素是否已被撞倒的方法
- 如何在导航之前判断元素是否在屏幕上
- AngularJS:如何判断我的控制器是否绑定到我的ng-repeat指令元素?我的数据没有显示
- 如何判断DOM中一个元素是否在另一个元素之前
- 我如何判断HTML5音频元素何时播放完毕
- 判断一个元素是否是由无状态的功能组件创建的
- 如何判断一个HTML元素是否正在屏幕上呈现?
- 如何判断同一页面上的两个元素是否具有相同的ID
- 如何判断HTML元素是否有伪元素
- 我如何判断HTML5 Audio元素是否在使用Javascript ?
- 如何判断一个HTML元素在JavaScript中是否有一个特定的类
- 如何判断<视频>元素当前正在播放
- 如何判断某个元素在视口中是否可见并占用整个视口
- 如何判断用户是否单击了视频元素或某个视频控件
- 在Javascript中,给定两个重叠的元素,如何判断哪个在另一个之上