我正在为我们的roadblock...the软件创建一个后置处理器,然后按下Javascript生成下面的结果。我离得很近,但我怎么才能摆脱最初的“未定义”呢?我的智慧到此为止了。谢谢
function onSection() {
var Comp = hasParameter("operation:compensationType")
? getParameter("operation:compensationType")
: " ";
var dComp = "";
if (Comp == "control") {
dComp = "D" + tool.diameterOffset + ", ";
} else {
return;
}
programInfo["program.comp"] += dComp;
}结果:
undefinedD46, D46, D25,发布于 2018-08-29 14:06:43
在到达代码的最后一行之前,programInfo["program.comp"]显然是undefined。这是undefined的唯一可能来源。
在连接到它之前,确保它包含有效的字符串。
if (!programInfo["program.comp"]) {
programInfo["program.comp"] = "";
}
programInfo["program.comp"] += dComp;发布于 2018-08-29 14:07:45
在追加之前,您将需要一个初始值。在javascript中,未初始化的值未定义。
function onSection() {
var Comp = hasParameter("operation:compensationType")
? getParameter("operation:compensationType")
: " ";
var dComp = "";
if (Comp == "control") {
dComp = "D" + tool.diameterOffset + ", ";
} else {
return;
}
// Ensure the field exists, if not, set it to empty string
var hasField = programInfo["program.comp"] !== undefined;
if (!hasField) programInfo["program.comp"] = ""
programInfo["program.comp"] += dComp;
}发布于 2018-08-29 14:08:41
programInfo["program.comp"]可能还没有初始化。由于您不想抹掉它的价值,所以应该有条件地这样做:
function onSection() {
var Comp = hasParameter("operation:compensationType")
? getParameter("operation:compensationType")
: " ";
var dComp = "";
if (Comp == "control") {
dComp = "D" + tool.diameterOffset + ", ";
} else {
return;
}
if (!programInfo["program.comp"]) {
programInfo["program.com"] = "";
}
programInfo["program.comp"] += dComp;
}https://stackoverflow.com/questions/52079327
复制相似问题