在JS中压缩一堆if-else语句

时间:2017-07-07 16:21:55

标签: javascript

我有很多if else语句,都根据条件改变对象的值。我想知道是否有另一种方法来编写此代码,因此它可以压缩/简化,并且不会占用太多空间。我有以下代码:

if (inputOne == "Yes") {
    inputOne = "517"
} else {
    inputOne = "518"
}
if (inputTwo == "Yes") {
    inputTwo = "518"
} else{
    inputTwo = "519"
}
if (inputThree == "Yes") {
    inputThree = "519"
} else {
    inputThree = "520"
}
if (inputFour == "Yes") {
    inputFour = "520"
} else {
    inputFour = "521"
}

等等......我将根据输入改变多个对象的值。有没有其他方法可以在JavaScript中编写这个可以节省时间或使其看起来更干净的方法?

2 个答案:

答案 0 :(得分:3)

首先,您可以使用ternary运算符。

inputOne = inputOne == "Yes" ? "517" : "518";

然后你可以创建一个可以重用的函数,比如......

function setInputValue(input, yes, no) {
    input = input == "Yes" ? yes : no;
}

并像......一样调用它。

setInputValue(inputOne, "517", "518");
setInputValue(inputTwo, "518", "519");

答案 1 :(得分:2)

使用三元运算符可以解决这个问题。 这是JS小提琴:     http://jsfiddle.net/5fbvf5vy/

Arrays