obj
数组 时,正常工作;但如果未找到,则会变为null
并打破页面。我怎么能事先检查 if exists ,如果不是只输出下一级字段?
当两个数组都存在于关系数据objs中时,下面有效 - 但有时候.NextObj
不包含一个数组,而只是字段 - 在这种情况下它应该只是被称为{ {1}}而不是.NextObj.field
,它在找到数组时起作用。你如何处理这两种可能性?
.NextObj[0].field
更新;如果找到第一个html += "<li class='information'>" + item.OutterObj[0].NextObj[0].url + "</li>";
为空,则仍然会抛出以下建议。
item.OutterObj[0]
答案 0 :(得分:3)
您是否尝试过检查它是否存在?这样的事情。
field = item.OutterObj[0].NextObj[0] ? item.OutterObj[0].NextObj[0].field : item.OutterObj[0].NextObj.field;
html += "<li class='information'>" + field + "</li>";
<强>更新强>
对于更通用的解决方案,您可以使用。
field = getProperty(item, ['OutterObj','NextObj', 'url']);
html += "<li class='information'>" + field + "</li>";
function getProperty(rootObject, properties){
properties.forEach(function(property){
rootObject = rootObject[0] ? rootObject[0][property] : rootObject[property]
});
return rootObject;
}