一.代码
function fn(num) {
num = String(num)
let str = ''
for (let i = num.length - 1, j = 1; i >= 0; i--, j++) {
if (j % 3 == 0 && i != 0) {
str = str + num[i] + ','
continue
} else {
str = str + num[i]
}
}
return str.split('').reverse().join('')
}
let a1 = fn(1498498415)
console.log(a1);
view视图:
思路的分析:
可以看出首先将传入的数字转化成了字符串.
i是递减的形式导着进行遍历
j是递增的形式,用来在适当的位置加上,进行分割。
循环执行的步骤:
5
5+1
5+1+4,
5+1+4,+8
5+1+4,+8+9,
5+1+4,+8+9+4,
......
如此的按照这个步骤执行下去。
然后:
return str.split('').reverse().join('')
将字符串切割成数组,翻转,转化为字符串。
二.如果不加 continue会怎么样
continue,跳出当前循环,执行下次循环。
代码:
<script>
function fn(num) {
num = String(num)
let str = ''
for (let i = num.length - 1, j = 1; i >= 0; i--, j++) {
if (j % 3 == 0 && i != 0) {
str = str + num[i] + ','
// continue
} else {
str = str + num[i]
}
}
return str.split('').reverse().join('')
}
let a1 = fn(1234567890)
console.log(a1);
</script>
不会有任何的影响。
三.i不等于0
在j=3的时候,此时,也到了第三位,并进行分割。
解答是为了增加限制的条件。
因为最终的结果要显示的格式是:
也就是最前面的一位不需要进行分割。所以i不能等于0。
你学废了吗?