Catalog
  1. 1. Ada
  2. 2. Beck
  3. 3. Helen
  4. 4. Irene
  5. 5. Mia
  6. 6. Jack
写一个函数,实现千分位

如:输入数字13829364,返回字符串13,829,364

Ada

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function format(num) {
var arr = [],
str = num + '',
count = str.length;

while (count >= 3) {
arr.unshift(str.slice(count - 3, count));
count -= 3;
}

// 如果是不是3的倍数就另外追加到上去
str.length % 3 && arr.unshift(str.slice(0, str.length % 3));

return arr.toString();
}

Beck

1
2
3
4
5
6
7
8
9
10
function comma(num) {
if (typeof num === 'number') {
num = num.toString();
}
if (num.length < 4) {
return num;
} else {
return comma(num.substring(0, num.length - 3)) + ',' + num.substring(num.length - 3, num.length);
}
}

Helen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// a.判断字符串长度余3是否有余数
// b.如有,记录下来
// c.剩余部分分组放入数组
function dealNum(num) {
const str = num.toString(),
overNum = str.length % 3, // 超出长度
overStr = overNum === 0 ? '' : str.slice(0, overNum); // 超出内容
let dealStr = str.slice(overNum), // 分组内容
outArr = [];

// 分组
for (let i = 0; i < dealStr.length; i += 3) {
outArr.push(dealStr.substr(i, 3));
}

return (overStr && overStr + ',') + outArr.join(',');
}

console.log(dealNum(1234567890));

Irene

1
2
3
4
5
6
7
let b = '';
function thousands(number, n = 1000) {
b = `${number % n}${b ? ',' + b : ''}`;
return parseInt(number / n) ? thousands(parseInt(number / n), n) : b
}

console.log(thousands(13829364));

Mia

1
2
3
4
5
6
7
8
9
10
11
12
13
function f1(num){
var str = num.toString();
var count = str.length/3;//2
var first = str.length%3;//2
var arr = [];
arr.push(str.substr(0,first));
for(let i = 0;i<count;i++){
arr.push(str.substr(first+i*3, 3));//2,3 //5,3
}
return arr.join(",").slice(0,-1);
}

f1(13829364);

Jack

1
2
3
4
5
6
7
8
9
10
11
12
function format(num){
num=num+'';
let str="";
for(let i=num.length- 1,j=1;i>=0;i--,j++){
if(j % 3 == 0 && i != 0){
str+=num[i]+",";
continue;
}
str += num[i];
}
return str.split('').reverse().join("");
}
Author: Erealm
Link: http://erealmsoft.github.io/2019/09/28/purefunc/purefunc-achieve-thousandth-place/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment