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