【发布时间】:2018-11-23 14:03:53
【问题描述】:
您好,我遇到了一个奇怪的错误,我有一个下面的对象
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: 无法读取未定义的属性'长度']
当我的目标是 es5 bu 时,此代码正在运行,一旦我将目标更改为 es6,它就开始中断。有谁知道为什么会突然发生这种情况。
【问题讨论】:
-
是否有更多代码可以展示您如何访问它?看来它应该对我有用。
-
我在 typescript-playground 中做同样的事情,它为我工作。
-
我刚试过你的代码,它工作正常。你确定你的原始代码没有遗漏什么吗?
-
不! iam 只是将 iam 使用该属性的方法放在其中。
-
尝试按顺序记录,你可能会覆盖变量,从
const dataFromUrl = ....开始,而不是let。然后执行:console.log('dataFromUrl: ', dataFromUrl);console.log('dataFromUrl.geography: ', dataFromUrl.geography.length);console.log('dataFromUrl.geography.length: ', dataFromUrl.geography.length);看看它打印了什么
标签: javascript json node.js typescript