[英]Can someone explain this line of code? 0 % 2
正在解決以下問題:
函數
padIt
接受 2 個參數:1.
str
,它是一個表示要填充的字符串的字符串,我們需要在str
左側或右側填充一些"*"
2.
n
,它是一個數字,填充字符串的次數。
這是答案:
function padIt(str,n){
var count = 0;
while ( count < n ) {
count % 2 ? str += '*' : str = '*' + str;
count ++
}
return str;
}
有人可以解釋一下這部分嗎? count % 2 ? str += '*' : str = '*' + str;
假設我將這些參數放在函數padIt('a', 1)
,第一個循環將有count = 0
所以該函數將有0 % 2
which = 0
。 為什么函數選擇選項str = '*' + str
來輸出'*a'
? 為什么不str += '*'
輸出'a*'
?
這是 if-else 語句的單行簡寫。 它被稱為條件(三元)運算符。
function padIt(str,n){
var count = 0;
while ( count < n ) {
count % 2 ? str += '*' : str = '*' + str;
count ++
}
return str;
}
這是構造count % 2 ? str += '*' : str = '*' + str;
count % 2 ? str += '*' : str = '*' + str;
是相同的
if(count % 2){
str += '*';
}else{
str = '*' + str;
}
count % 2 ? str += '*' : str = '*' + str;
意味着如果計數甚至這樣做如果不這樣做。
明顯的優點是它更短。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.