簡體   English   中英

有人可以解釋這行代碼嗎? 0 % 2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM