如果数组存在于Obj中,则获取数组项,如果不是只获取字段

时间:2017-12-13 22:43:26

标签: javascript jquery arrays

找到嵌套的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]

1 个答案:

答案 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;
}