2016-05-06 7 views
0

かなり長い3進演算子ステートメントが見つかったばかりで、何が起きているのかわからないときや、これを通常に変換できるツールやスクリプトがありますif/else-if/else?3進演算子のステートメントをnormal/elseif/elseステートメントに変換する

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

はい、キーボードの指。すなわちマニュアル – Tushar

+0

FWIWの場合、それらは 'x> 9を壊している可能性がありますか? x: "0" + x'パターンを関数に追加し、それを 'sprintf_02d(x)'と呼びます。 – Thilo

+0

答えはいいえ、そのようなツールやスクリプトはありません。 – Black

答えて

3

関数を使用し、必要に応じてゼロを追加することができます。

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

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

これは、拡張結果である:Array.mapArray.joinを使用して

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; 
} 
1

ソリューションと "現代" 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" 
+0

これを共有してくれてうれしいです。 – Black

関連する問題