【发布时间】:2017-12-14 19:14:37
【问题描述】:
我一直在 JavaScript 中使用三元运算符来根据用户输入修改对象的值。我有以下代码,它应该运行:
var inputOneAns = inputOne == "Yes" ? "517" : "518";
如您所见,我将数字字符串值分配给inputOneAns无论用户输入的是“是”还是“否”。但是,可能存在用户没有选择值的情况(因为它不是必需的)。如果此输入留空,我想为inputOneAns 分配一个空字符串“”。有没有办法或我将一个三元运算符嵌入另一个三元运算符中?为了帮助澄清,这是我想用我的三元函数但使用 if else 语句来完成的相同函数?
if (inputOne == "Yes"){
var inputOneAns = "517"
}else if (inputOne == "No"{
var inputOneAns = "518"
}else{
var inputOneAns = ""
}
是否可以在一个三元函数中包含多个表达式?有没有更好的方法来完成我正在寻找的东西?提前感谢您的提示。
【问题讨论】:
-
可以嵌套三元运算符,但通常不是很清楚
-
let inputOneAns = inputOne === 'Yes' ? '517' : inputOne === 'No' ? '518' : '';但不要这样做。这很丑陋,if/else更具可读性。如果你的同事知道你住在哪里,这是你不想冒的风险...... -
var choices = {Yes: 517, No: 518}; var inputOneAns = inputOne in choices ? choices[inputOne] : ""或inputOneAns = choices[inputOne] || ""
标签: javascript if-statement conditional ternary-operator