繁体   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