我使用一些已定义的变量创建单个字符串,如下所示:
var name = 'John';
var business = 'Google';
var email = name + ' registered the business ' + business;
实际上,这是来自表单提交,因此变量将以表单形式设置并发送到我的NodeJS后端以创建此字符串。用户可能会也可能不会输入消息。我创建了一个if语句,如果它们有以下内容,则将其添加到字符串中:
if (message) email += '<br /><br />Message: ' + message;
问题是当我扩展这个逻辑时,它会变得非常混乱。例如,如果我想将几个条件变量添加到原始字符串中间的各个点。有没有办法在初始字符串构建中执行条件逻辑?
答案 0 :(得分:3)
使用三元运算符。它仍然可能变得混乱,但它会减少&#34;如果&#34;无处不在。
var email = name + ' registered ' + business
+ (message ? '<br /><br />Message: ' : '') // conditional line
+ more_stuff...;
答案 1 :(得分:0)
您可以通过多种方式构建代码来清理内容。一个简单的解决方案是创建一个跟踪各种输入的对象,然后循环遍历该对象以附加所有必需的项。
例如:
var obj = {
message: messageField,
messageTwo: messageTwoField
}
for (keys in obj){
if (key == message && obj.key) {
//append the string to a specific place
}
}
有很多方法可以解决这个问题,但是将所有内容存储在一个可以帮助清理的对象中。此外,if语句基于键名称是有条件的,并且是否为该键名指定了值。这当然只是我对如何处理这个问题的看法,应用程序的大小和复杂性可能会大大改变这个答案。