给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。
js
输入:n = 987
输出:"987"
输入:n = 1234
输出:"1.234"
输入:n = 123456789
输出:"123.456.789"
输入:n = 0
输出:"0"
无情的 api 杀手!
js
/**
* @param {number} n
* @return {string}
*/
var thousandSeparator = function (n) {
return n.toLocaleString(3).replace(/,/g, '.');
};
当然不,正规解法:
js
/**
* @param {number} n
* @return {string}
*/
var thousandSeparator = function (n) {
let s = n.toString();
let j = s.length;
let result = [];
while (j - 3 > 0) {
result.unshift(s.slice(j - 3, j));
j -= 3;
}
// 前面的数 也要判断
if (j > 0) result.unshift(s.slice(0, j));
return result.join('.');
};
Better
js
function thousandSeparator(n: number): string {
const rec = (v: string) => (v.length <= 3 ? v : rec(v.slice(0, -3)) + '.' + v.slice(-3));
return rec(String(n));
}