演算法練習02 實現數字千分位分割
阿新 • • 發佈:2018-12-03
題目(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