解法一 字符转数组,然后反向加,
const paddingNum=(num)=>{ let str=num+""; //变字符 let intArr if(str.indexOf('.')===-1) intArr=str.split(''); //如果没有小数 let part=str.split('.'); //有小数部分,分割小数 intArr=part[0].split(''); let sym=""; //记录正负号 if(intArr.indexOf("-")===0){ sym="-"; intArr.splice(0,1); } let count=0; // 记录插入逗号的位置 let res=[]; for(let i=intArr.length-1;i>=0;i--){ let temp=intArr[i]; if(count===3){ res.unshift(','); count=0; } res.unshift(temp); count++; } return str.indexOf('.')===-1?sym+res.join(''):sym+res.join('')+"."+part[1]; 根据有没有小数输出}
解法二、用subString直接从numString里提取,并拼接字符串。
const paddingNum=(num)=>{ let sym= num>=0?'':'-'; let str=Math.abs(num)+''; let intCount=str.indexOf(".")===-1?str.length:str.indexOf("."); if(intCount<=3){ return sym+str; } let index=intCount%3; let res=index===0?"":str.substring(0,index)+","; for(let i=0;i<(intCount-yushu)/3-1;i++){ res+=str.substring(index,index+3)+","; index+=3; } res+=str.substring(index); return sym+res;}