你好,我面临一个奇怪的错误,我有一个下面的对象
let dataFromUrl = {
"careerTrackId": 510,
"country": [],
"geography": [18],
"ou2": [51549564],
"ou3": [],
"ou4": [],
"ou5": [],
"ou6": [],
"ou7": [],
"ou8": [],
"region": []
}
console.log(dataFromUrl.geography.length);
// Here in this method iam using this dataFromUrl
function getGeoUnitId(dataFromUrl) {
console.log("dataFromUrl",dataFromUrl);
console.log("dataFromUrl.geography",dataFromUrl.geography);
console.log("dataFromUrl.ou2",dataFromUrl.ou2);
console.log("dataFromUrl.careerTrackId",dataFromUrl.careerTrackId);
let geoUnitId = "(" + dataFromUrl.geography + ")";
let str2 = "geounitid IN " + geoUnitId;
if (dataFromUrl.geography.length == 0) {
str2 = "";
}
return str2;
}
但是当我尝试在我的 nodejs
代码中使用 dataFromUrl.geography.length
时,出现以下错误:
[ 'TypeError: Cannot read property 'length' of undefined']
当我的目标是 es5 时,这段代码正在运行,但一旦我将目标更改为 es6,它就开始崩溃。有谁知道为什么会突然发生这种情况吗?
最佳答案
查看完评论后,我可能的猜测是您正在调用不带参数的 getGeoUnitId()
,并且它使用的是您可能已更改的外部定义的 getGeoUnitId
。
尝试重命名参数变量名称
function getGeoUnitId(somethingOtherThan_dataFromUrl) {
提示:如果您在理解 JS 代码时遇到问题,您应该使用 Chrome(或任何其他浏览器)的开发人员工具并添加调试器来查看代码流程、变量如何赋值、更新位置等等...
关于javascript - 通过 json 中的键访问值会抛出 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50846554/