替代JavaScript中的if else语句

时间:2015-11-16 22:37:43

标签: javascript if-statement

以下代码工作正常,但我认为有一种更有效的逻辑流方式。目前我正在写两次相同的函数,输出字符串有细微的变化。有没有人知道如何使用更少的代码使这个逻辑工作?

if (result <= 1) {
    document.getElementById('output').innerText = Math.ceil(result) + " roll of wallpaper";
}
else {
    document.getElementById('output').innerText = Math.ceil(result) + " rolls of wallpaper";
}           

3 个答案:

答案 0 :(得分:1)

document.getElementById('output').innerText = [
                                Math.ceil(result),
                                ' roll',
                                result > 1 ? 's' : '',
                                ' of wallpaper'].join('')

答案 1 :(得分:0)

可以:

var s = (result <= 1) ? 's' : '';
document.getElementById('output').innerText = Math.ceil(result) + ' roll'+s+' of wallpaper';

答案 2 :(得分:0)

您可以事先建立差异并手动添加:

var s = ( result <= 1 ? 's' : '' );
document.getElementById('output').innerText = 
    Math.ceil(result) + " roll" +s+ " of wallpaper";

编辑:使用模板字符串的尖端JS奖金是额外的乐趣(需要巴贝尔):

var displayResult = Math.ceil(result);
var s = ( result <= 1 ? 's' : '' );
document.getElementByid('output').innerText = 
    `${displayResult} roll${s} of wallpaper`;