我正在尝试处理数组中不存在的对象。
var departureGate = JSON.stringify(data.flightStatuses[i].airportResources.departureGate);
因此,当javascript代码到达此处时,它会因为在它尝试解析的实际字符串中没有任何内容而失败。我试过用“typeof”捕获它,但这也不起作用。我很难过。
因此,data.flightStatuses [i]数组存在,而不是.airportResources.departureGate。
我试图使用“typeof data.flightStatuses [i] .airportResources.departureGate”查看它是否存在。它仍然会崩溃。
alert (typeof data.flightStatuses[i]) // this comes back "object"
alert (typeof data.flightStatuses[i].airportResources.departureGate) // it dies...
答案 0 :(得分:0)
应该像这样相当直接:
if (data.flightStatuses[i].airportResources.departureGate) {
var departureGate = JSON.stringify(data.flightStatuses[i].airportResources.departureGate);
}
答案 1 :(得分:0)
您的问题似乎与airportResources
有关,而与departureGate
无关。
试试这个:
var departureGate = null,
ar = data.flightStatuses[i].airportResources;
if(ar && 'departureGate' in ar){
departureGate = JSON.stringify(ar.departureGate);
}
干杯
答案 2 :(得分:0)
您可以检查出发门是否完全被定义为属性,然后执行您想要的操作,例如:
if(data.flightStatuses[i].airportResources.hasOwnProperty('departureGate') {
var departureGate = JSON.stringify(data.flightStatuses[i].airportResources.departureGate);
} else {
var departuregate = null; // for example
}