var str = '123456789'; //[9,8,7,6,5,4,3,2,1] function formatCash(str) { //不考慮入參的判斷 return String(str).split('').reverse().reduce((pre, next, index) => { return (index % 3) ? (next + "" + pre) : (next + ',' + pre); }) } console.log(formatCash(str));
另一種優化算法,由於字符串在 js 每次變化都會從新開闢內存,全部轉化爲數組會更加便捷;javascript
function f(str) { const ret = Array.from(str).reverse().reduce((result,next,i,arr) => { if((i+1)%3 === 0 && (i+1) !== arr.length) { result.push(next,',') return result; } result.push(next); return result; // return (index % 3) ? (next + "" + pre) : (next + ',' + pre); },[]) return ret.reverse().join(''); }
var reg2 = /(?!^)(?=(\d{3})+$)/g; console.log(str2.replace(reg2,',');
更多文章在githubjava