我刚刚发现了一个非常长的三元运算符语句,并且很难找到正在发生的事情,是否有工具或脚本可以将其转换为正常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);
答案 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.map
,Array.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"