利用Js实现一个千分位

一.代码

  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。

你学废了吗?

猜你喜欢

转载自blog.csdn.net/qq_59076775/article/details/124340828