題目(2018-11-18)
輸入一個數(shù)字,將數(shù)字按照用逗號分隔,例如輸入1234.56
,結(jié)果是1,234.56
實現(xiàn)
關(guān)鍵點是,這種分隔方法是從右至左的分隔,用普通的slice方法是從左至右的分隔,例如:
12345
正確的結(jié)果是12, 345
,而用普通的slice
方法結(jié)果是123, 45
如果圖簡單,可以直接使用內(nèi)置的方法:
// 內(nèi)置的方法
Number.toLocalString();
const a = 12345.11;
console.log(a.toLocalString()); // 123,45.11
如果是為了鍛煉算法,則需要手寫:
/**
* 輸入數(shù)組,返回按照位數(shù)分割的數(shù)組
* @param number 傳入的數(shù)字
* @param range 按照此位數(shù)將數(shù)字分割
* @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