将三元运算符语句转换为正常的if / elseif / else语句

时间:2016-05-06 07:22:21

标签: javascript

我刚刚发现了一个非常长的三元运算符语句,并且很难找到正在发生的事情,是否有工具或脚本可以将其转换为正常if / else-if / else?

h1.textContent = (hours ? (hours > 9 ? hours : "0" + hours) : "00") + ":" + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" + (seconds > 9 ? seconds : "0" + seconds);

3 个答案:

答案 0 :(得分:3)

您可以使用函数并在必要时添加零。

function pad(n) {
    if (n < 10) {
        return '0' + n;
    }
    return n || '00';
}

h1.textContent = pad(hours) + ":" + pad(minutes) + ":" + pad(seconds);

答案 1 :(得分:1)

这是扩展的结果:

h1.textContent = "";
if (hours){
    h1.textContent += (hours > 9 ? hours : "0" + hours);
} else {
    h1.textContent += "00";
}
h1.textContent += ":";
if (minutes) {
    h1.textContent += (minutes > 9 ? minutes : "0" + minutes);
} else {
    h1.textContent += "00";
}
h1.textContent += ":";
if (seconds > 9){
    h1.textContent += seconds;
} else {
    h1.textContent += "0" + seconds;
}

答案 2 :(得分:1)

使用Array.mapArray.join和&#34;现代&#34;的解决方案ES6 箭头函数表达式

var hours = 00, minutes = 35, seconds = 5,
    time = [hours, minutes, seconds].map((v) => (v > 9? v : "0"+v) || "00").join(":");

h1.textContent = time;
console.log(time);  // "00:35:05"