您的位置:首页 > Web前端 > JavaScript

js 数值每三位加逗号和反转字符串

2018-04-09 00:00 225 查看
参考

https://funteas.com/topic/5ac9cc8c7be5304e6850cfba

上面的实现总感觉有点不够优雅(装逼。。。),想着自己换种方式试试。

首先字符串反转

先分割为数组,然后调用数组的reverse方法反转字符,最后拼接为字符串

let s = 'abcd'
console.log(
s.split('').reverse().join('') // dcba
)


使用reduce改写,在里面判断下标是否是3的倍数并且不是第一个,由于是反转后的,第一个 就是整数数字部分的最后一个

function fun(s) {
console.log(
s,
s.split('.')[0],
s.split('.')[0].split('').reverse(),
s.split('.')[0].split('').reverse().reduce(
(pre, cur, index) => pre.concat(index % 3 == 0 && index != 0 ? cur + ',' : cur), []
).reverse().join('') + ('' + s.split('.')[1] != "undefined" ? ('.' + s.split('.')[1]) : ''),
)
}

let strs = [
'1',
'123',
'1234',
'123456',
'123456789.12345',
]

for (const s of strs) {
fun(s)
}

1 1 [ '1' ] 1
123 123 [ '3', '2', '1' ] 123
1234 1234 [ '4', '3', '2', '1' ] 1,234
123456 123456 [ '6', '5', '4', '3', '2', '1' ] 123,456
123456789.12345 123456789 [ '9', '8', '7', '6', '5', '4', '3', '2', '1' ] 123,456,789.12345
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: