JavaScript中if-else语句的替代方法

JavaScript中if-else语句的替代方法,javascript,if-statement,Javascript,If Statement,下面的代码工作正常,但是我假设有一种更有效的方法来实现逻辑流。目前,我正在编写两次相同的函数,输出字符串中有细微的变化。有人知道用更少的代码实现这种逻辑的方法吗 if (result <= 1) { document.getElementById('output').innerText = Math.ceil(result) + " roll of wallpaper"; } else { document.getElementById('output').innerTex

下面的代码工作正常,但是我假设有一种更有效的方法来实现逻辑流。目前,我正在编写两次相同的函数,输出字符串中有细微的变化。有人知道用更少的代码实现这种逻辑的方法吗

if (result <= 1) {
    document.getElementById('output').innerText = Math.ceil(result) + " roll of wallpaper";
}
else {
    document.getElementById('output').innerText = Math.ceil(result) + " rolls of wallpaper";
}           
如果(结果可以是:

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

var s=(结果您可以事先构建差异并手动添加:

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

var s=(结果)对更改的部分使用一个额外的变量。有条件地初始化它,然后在所有情况下都通用的部分中使用它。哇,有很多相同的答案可供选择。没问题。请确保将最后使用的一个标记为其他用户的解决方案。
var displayResult = Math.ceil(result);
var s = ( result <= 1 ? 's' : '' );
document.getElementByid('output').innerText = 
    `${displayResult} roll${s} of wallpaper`;
document.getElementById('output').innerText = [
                                Math.ceil(result),
                                ' roll',
                                result > 1 ? 's' : '',
                                ' of wallpaper'].join('')