题解 | #分隔符#
分隔符
https://www.nowcoder.com/practice/e5696992841841a8ab9d026324e4bb77
首先,我的想法不仅仅只是在千位分隔一次,而是将数字从右往左数,每三位,加一个','。
思路:
1.从右往左数,每三位,截取字符串,按push的方式添加到数组中,不要用unshift方法,因为会影响效率
2.因为刚刚添加数组项目的顺序是跟实际的字符串顺序相反的,所以需要用数组的reverse方法,将数组反转
3.处理一些小小的细节,比如,要是传入一个负数呢,那数字前面不就带负号了,怎么处理,还有,我们是三个一组截取字符串,那要是刚好最前面的字符串有三位,那该怎么办?
4.处理以上的小细节之后,就可以使用数组的join()方法,将数组用','连接
function _comma(number) {
let sign = ''
let str = String(number)
let subStrArr = []
if(number < 0) {
sign = '-'
str = String(number).slice(1)
}
for(let i = 0;i >= -str.length; i-=3) {
if(i == 0) {
subStrArr.push(str.slice(-3))
continue
}
subStrArr.push(str.slice(i-3,i))
}
subStrArr.reverse()
if(subStrArr[0].length === 0) {
subStrArr.shift()
subStrArr[0] = sign + subStrArr[0]
}
return subStrArr.join(',')
}
上海得物信息集团有限公司公司福利 1253人发布