我有一个 JSON 响应,其中有 5 个表。所以我解析同样的
JSON
。解析后,我得到的第一个表为 []
。所以我想检查一下这个情况。下面是 JSON 响应和解析。
var dataResponse = JSON.parse(response);
var NE_length_Data = "";
if (dataResponse != null || dataResponse != undefined) {
var FSAInfoData = dataResponse.Table; // UG
var FSAInfoData1 = dataResponse.Table1; // MDU
var FSAInfoData2 = dataResponse.Table2; // AR
var FSAInfoData3 = dataResponse.Table3; // vendor
var FSAInfoData4 = dataResponse.Table4; // history
var FSAInfoData5 = dataResponse.Table5; // progress data
$("#spnFiberEngFsaId").text(FSA_IDNew);
$("#spnProgressID").text(FSAInfoData5[0].JOB_PROGRESS_ID);
var NE_LENGTH = FSAInfoData[0].UG_LENGTH + FSAInfoData2[0].AR_LENGTH; // Here I want to add condition to check null for 1st table
$("#spnFiberEngFsaLength").text(NE_LENGTH.toFixed(4));
}
由于未检查此 null,我的代码未进一步执行。请帮忙
在尝试索引数组之前检查长度。
var NE_LENGTH = (FSAInfoData.length == 0 ? 0 : FSAInfoData[0].UG_LENGTH) + FSAInfoData2[0].AR_LENGTH;
因此,如果第一个表的长度为 0,则默认为 0,而不是
FSAInfoData[0].UG_LENGTH
。
另一种方法是使用可选链来防止尝试访问不存在元素的属性时出现错误,并
??
提供默认值。
var NE_LENGTH = (FSAInfoData[0]?.UG_LENGTH ?? 0) + FSAInfoData2[0].AR_LENGTH;