题目(2018-11-18)
输入一个数字,将数字按照用逗号分隔,例如输入1234.56
,结果是1,234.56
实现
关键点是,这种分隔方法是从右至左的分隔,用普通的slice方法是从左至右的分隔,例如:
12345
正确的结果是12, 345
,而用普通的slice
方法结果是123, 45
如果图简单,可以直接使用内置的方法:
// 内置的方法
Number.toLocalString();
const a = 12345.11;
console.log(a.toLocalString()); // 123,45.11
如果是为了锻炼算法,则需要手写:
/**
* 输入数组,返回按照位数分割的数组
* @param number 传入的数字
* @param range 按照此位数将数字分割
* @returns {string} 返回用逗号分隔的字符串
*/
const splitStr = (number, range = 3) => {
let str = number.toString();
const[left, right] = str.split('.');
const strArr = left.split('').reverse();
let result = [];
for (let i = 0; i < strArr.length; i += range) {
result.push(strArr.slice(i, i + range).reverse().join(''))
}
return `${result.reverse().join(',')}.${right}`
};
const a = 12345.11;
console.log(splitStr(a)); // 123,45.11
网友评论