数字千分位格式化
思路1
转换为数组,reverse,每3位拆分
代码实现
// 数组的方法
function format1 (n: number):string {
let ary = n.toString().split('').reverse()
return ary.reduce((prev, val, index) => {
if (index % 3 === 0) {
if (prev) {
return val + ',' + prev
}else {
return val
}
}else {
return val + prev
}
}, '')
}
思路2
使用正则表达式
思路3
使用字符串拆分
代码实现
// 使用字符串的拼接
function format2(n:number): string {
const str = n.toString()
let length = str.length;
let res: string = ""
for (let i = length-1; i>=0 ;i--) {
if ((length-i) % 3 === 0) {
if (i===0) {
res = str[i] + res
}else {
res = ',' + str[i] + res
}
}else {
res = str[i] + res
}
}
return res
}
###总结 根据之前的总结,正则表达式 速度慢, 数字的操作比字符串快,数字和字符串比数组快, 能不用语法糖和api 就不使用 推荐使用字符串