该例子是输出一个价格:
function test(val) {
let newstr = '', newarr = [], finalarr = []
//因为是从右边添加,所以要reverse()
newarr = String(val).split('').reverse()
//每添加三个元素后,添加一个逗号
//因为数组的索引是从0开始的,要计算每三位元素,就应该使用i+1
for(let i = 0; i < newarr.length; i++) {
if((i + 1)% 3 == 0) {
finalarr.unshift(newarr[i])
finalarr.unshift(',')
}else {
finalarr.unshift(newarr[i])
}
}
//清除头部出现的逗号,当数字长度是3的倍数时,头部会多添加一个逗号
if(finalarr[0] == ',') {
finalarr.shift()
}
//添加小数点后两位和价格符号
newstr = finalarr.join('') + '.00 $'
return newstr
}
console.log(test(960000)) // 960,000.00$
这里有最简单暴力的方法:
let num = 123123123
console.log(num.toLocaleString())