题目描述

数字金额格式化是一道考频非常高的题目,无论是实习还是校招都有可能考到这个题目,所以笔者希望大家都能搞懂这道题目,下面让我们来一起探索这道题目吧。

字节青训营笔试之数字金额格式化_其他

解题思路

  1. 首先将传入函数的数字通过toString方法转换为字符串,然后使用split进行分割。
  2. 定义一个计数器,用于辅助判断什么时候添加逗号。
  3. 倒序遍历添加数字和逗号。
function toThousands(num) {
  // 首先将传入的数字进行分割
  num = num.toString().split('');
  // 定义最终要返回的结果
  const res = [];
  let count = 0;
  // 遍历每一个字符
  for (let i = num.length - 1; i >= 0; i--) {
    res.unshift(num[i]);
    count++
    if (count % 3 === 0 && i !== 0) {
      res.unshift(',')
    }
  }
  return res.join('');
}

let test = 236471283572983412;
console.log("二者是否相等:",test.toLocaleString() === toThousands(test));
console.log(test.toLocaleString()); 
console.log(toThousands(test)); 

题目反思

这个题目必须要倒着遍历,然后通过计数器辅助来进行添加逗号,是一个很不错的思路,指的我们反复学习揣摩。