我有一个看起来像
的自定义对象var locationsMap = {
"obj1":[1],
"obj2":[7],
"obj3":[21]
}
我可以将此自定义对象称为:
var loc = "obj2";
alert(locationsMap[loc][0]);
这在jsFiddle中工作正常;但是,当我在NetSuite中的代码中嵌入此逻辑时,loc变为未定义:
nlapiLogExecution('debug',"Location: "+ loc); //works fine
nlapiLogExecution('debug','Location: '+locationsMap[loc][0]); //throws exception
在NetSuite调试器中:
$ nlapiLogExecution('debug','Location: '+locationsMap[loc][0]);
> TypeError: Cannot read property "0" from undefined
为什么当我通过locationsMap
对象调用它时,loc显示为未定义,但不是
当我自己调用它时是不确定的?
- 编辑 -
调用nlapiLogExecution('debug','Location: '+locationsMap['obj2'][0]);
按预期工作。
- 编辑2--
由于这些问题,我最终放弃了这种方法,尽管我仍然有兴趣找出为什么会遇到这种行为。
答案 0 :(得分:0)
我把它放在NetSuite调试器和SuiteCloud IDE调试器中,所有这些都回来了。时间已经解决了这个问题。
var locationsMap = {
"obj1":[1],
"obj2":[7],
"obj3":[21]
};
var loc = "obj2";
nlapiLogExecution('debug',"Location: "+ loc);
nlapiLogExecution('debug','Location: '+locationsMap[loc][0]);
debug Location: obj2 10/30/2014 20:05:41.303
debug Location: 7 10/30/2014 20:05:43.284
metrics usage 0, time 20096 10/30/2014 20:05:43.284