以下代码工作正常,但我认为有一种更有效的逻辑流方式。目前我正在写两次相同的函数,输出字符串有细微的变化。有没有人知道如何使用更少的代码使这个逻辑工作?
if (result <= 1) {
document.getElementById('output').innerText = Math.ceil(result) + " roll of wallpaper";
}
else {
document.getElementById('output').innerText = Math.ceil(result) + " rolls of wallpaper";
}
答案 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`;