我有这个对象的例子:
{
"id": 1,
"name": "name",
"address": "add",
"contactsArr": [{
"id": 1,
"name": "cont",
"tel": "tel",
"mail": "mail"
}],
"description": "desc"
}
该对象位于对象数组内,该数组称为
arrSuppCompNames
。我从数据库表中的JSON字符串获取此数组。这是我在
contactsArr
中获取最后一个对象的ID的函数:function getLastIdFromArrContUser(){
if("{{user.supplier_comp_name}}" != null && "{{user.supplier_comp_name}}" != "" && "{{user.supplier_comp_name}}" != 0){//not first
var arrSuppCompNames = JSON.parse(("{{user.supplier_comp_name}}").replace(/"/g,'"'));
console.log("arrSuppCompNames: " + JSON.stringify(arrSuppCompNames));
return arrSuppCompNames[arrSuppCompNames.length - 1].contactsArr[contactsArr.length - 1].id;
}else{//first
return 0;
}
}
但我在该行
Uncaught ReferenceError: contactsArr is not defined
中一直得到return arrSuppCompNames[arrSuppCompNames.length - 1].contactsArr[contactsArr.length - 1].id;
。事实是我确定对象数组内是否存在contactsArr
,因为日志打印仅在前一行。这是我的日志:arrSuppCompNames: [{"id":1,"name":"name","address":"add","contactsArr":[{"id":1,"name":"cont","tel":"tel","mail":"mail"}],"description":"desc"}]
不知道这只是一个愚蠢的JS错误或我看不见的错误类型,还是其他与JSON相关的东西。
最佳答案
您尝试访问索引[contactsArr.length-1],但在此上下文中未定义contactsArr。考虑:
var contactsArr = arrSuppCompNames[arrSuppCompNames.length - 1].contactsArr;
return contactsArr[contactsArr.length - 1].id;
关于javascript - 对象内部的数组未定义JS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42755230/