创建和测试单个 Javascript 嵌套函数



抱歉,如果我在这里使用了错误的语义,但我有一个函数最终将嵌入到应用程序中,特别是FormAssembly。它们允许定义JS函数,然后在页面中调用。所以我鼓吹了以下函数,不出所料,它一直返回错误:

<script>
function getFormId(program) {
if (['a0s1M00000GrLrY', 'a0s1M00000GrLra', 'a0s1M00000GrLre', 'a0s1M00000GrLsl', 'a0s1M00000GrLtA', 'a0s1M00000GrLtC', 'a0s1M00000GrLtD', 'a0s1M00000GrLtE', 'a0s1M00000GrLtF'].includes(program)) {
return '76';
} else if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(program)) {
return '75';
} else {
return '74';
}
}
</script>

所以我试图调整它以在像 https://jsfiddle.net/这样的小提琴网站上进行测试,但不确定如何调整代码来定义函数然后调用它。我尝试将以下内容粘贴到小提琴的 JS 部分并运行它,但没有输出任何内容:

function getFormId(program) {
if (['a0s1M00000GrLrY', 'a0s1M00000GrLra', 'a0s1M00000GrLre', 'a0s1M00000GrLsl', 'a0s1M00000GrLtA', 'a0s1M00000GrLtC', 'a0s1M00000GrLtD', 'a0s1M00000GrLtE', 'a0s1M00000GrLtF'].includes(program)) {
return '76';
} else if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(program)) {
return '75';
} else {
return '74';
}
}
getFormId('2')

如果我能得到帮助,至少验证"基本"代码或函数定义是否正确,那将是有帮助的。我也非常感谢任何帮助修改它以在小提琴中进行测试。

您当前正在调用该函数,但未对其返回值执行任何操作。

您可以将其记录到 Web 控制台:

console.log(getFormId('2'));

您需要打开浏览器的开发工具(通常是 Ctrl+Shift+I 和/或 F12)并切换到"控制台"选项卡才能看到。

或者,您可以将其写入 DOM 中的元素:

function log(msg) {
var p = document.createElement("pre");
p.appendChild(document.createTextNode(msg));
document.body.appendChild(p);
}

然后

log(getFormId('2'));

附带说明一下,您实际上可以通过将程序映射到对象结构中的表单 ID 并简单地检索映射到传入的程序值的表单 ID 来简化此逻辑:

const oProgramMapping = {
'default': '74',
'a0s1M00000GrLrY': '76',
'a0s1M00000GrLra': '76',
'a0s1M00000GrLre': '76',
'a0s1M00000GrLsl': '76',
'a0s1M00000GrLtA': '76',
'a0s1M00000GrLtC': '76',
'a0s1M00000GrLtD': '76',
'a0s1M00000GrLtE': '76',
'a0s1M00000GrLtF': '76',
'1': '75',
'2': '75',
'3': '75',
'4': '75',
'5': '75',
'6': '75',
'7': '75',
'8': '75',
'9': '75'
};
function getFormId(program) {
return oProgramMapping[program] || oProgramMapping.default;
}
console.log('"a0s1M00000GrLrY" ID is: ', getFormId('a0s1M00000GrLrY'));
console.log('"6" ID is: ', getFormId('6'));
console.log('"XYZ" ID is: ', getFormId('XYZ'), ' (should default to "74")');

与在代码中嵌入值相比,这种方法有很多好处。这种方法不仅通过用关系数据结构替换逻辑来简化代码,还允许从代码中删除硬编码的数据值(即,从外部数据文件导入、服务调用等中分配oProgramMapping变量值),这意味着可以在不更改代码的情况下维护数据。

最新更新