JS 为金额增加千分位逗号分割符

思路大致为:

  1. 将数字转换为字符串
  2. 如果存在小数点,使用substr等方法截取包含小数点后的字符
  3. 使用substring等方法截取0到小数点位置的字符,并通过split使字符串变为数组
  4. 遍历数组,当index为3的倍数时,使用splice向当前下标后增加‘,’逗号
  5. 最后通过join将数组转为字符串并拼接上面截取小数点后的字符

实现的代码如下:

output(n) {
      // 将数字转换位字符串
      let num = n.toString()
      // 如果存在小数点,截取小数点及其后面的字符
      let after = num.indexOf('.') > 0 ? num.substr(num.indexOf('.')) : ''
      // 如果存在小数点,使用substring截取小数点前的字符,再通过split给字符串转换为数组
      let numArr =
        num.indexOf('.') > 0
          ? num.substring(0, num.indexOf('.')).split('')
          : num.split('')
      numArr.forEach((i, index) => {
        // 剔除第一位的整除或者长度为3的倍数的情况,每当取到3位则在当前下标后插入一个','
        if (
          index !== 0 &&
          index !== numArr.length - 1 &&
          (index + 1) % 3 === 0
        ) {
          numArr.splice(index + 1, 0, ',')
        }
      })
      // 再将数组转换为字符串,拼接上上面的小数点后面的字符
      return numArr.join('') + after
    },

有问题的话,希望各位大佬指出!

猜你喜欢

转载自blog.csdn.net/weixin_44296432/article/details/105640869
今日推荐