Javascript 如何用更少的行数优化下面的代码?

Javascript 如何用更少的行数优化下面的代码?,javascript,Javascript,我已经对下面的代码进行了编码,它处理大于999的数字,并在其中添加了一个逗号。例如1000和1000000。当数字增加时,逗号将被放置在正确的位置。我使用了干燥原理,我觉得还有另一种简单的方法来处理它。 现在,我想知道是否有比这更好的方法。 等待你的意见 谢谢 function seperate_num_by_comma() { var num = '199228754645.25', withOutComma = num.split('.'), addNewCommaAf

我已经对下面的代码进行了编码,它处理大于999的数字,并在其中添加了一个逗号。例如1000和1000000。当数字增加时,逗号将被放置在正确的位置。我使用了干燥原理,我觉得还有另一种简单的方法来处理它。 现在,我想知道是否有比这更好的方法。 等待你的意见

谢谢

function seperate_num_by_comma() {

  var num = '199228754645.25',
    withOutComma = num.split('.'),
    addNewCommaAfter = 3,
    x = withOutComma[0].length % addNewCommaAfter,
    lenOfWithOutComma_0 = withOutComma[0].length,
    length_1 = withOutComma[0].length - x,
    starter = 0,
    wholeNumber = ' ';

  for (var i = 0; i < lenOfWithOutComma_0; i++) {

    function run_first_func() {
      wholeNumber += withOutComma[0].substr(starter, addNewCommaAfter);
    };

    function run_second_fun() {
      wholeNumber += withOutComma[0].substr(starter, addNewCommaAfter) + ",";
      starter += addNewCommaAfter;
      length_1 -= addNewCommaAfter;
    };

    if (x > 0) {
      if (length_1 == 0) {
        run_first_func();
        break;
      } else if (wholeNumber == ' ') {
        wholeNumber += withOutComma[0].substr(starter, x) + ",";
        length_1 -= addNewCommaAfter;
        starter = x;
      } else {
        run_second_fun();
      }
    } else if (x == 0) {
      if (length_1 == 3) {
        run_first_func();
        break;
      }
      run_second_fun();
    }
  }
  console.log(wholeNumber + '.' + withOutComma[1]);
}
seperate_num_by_comma();

用逗号()分隔数值的函数{
var num='199228754645.25',
不带逗号=num.split('.'),
ADDMAFTER=3,
x=不带逗号[0]。长度%addNewCommaAfter,
LenOfWithout逗号\u 0=不带逗号[0]。长度,
长度_1=不带逗号[0]。长度-x,
起动器=0,
wholeNumber='';
对于(变量i=0;i0){
如果(长度_1==0){
运行_first_func();
打破
}else if(wholeNumber==''){
wholeNumber+=不带逗号[0]。substr(starter,x)+“,”;
长度_1-=addNewCommaAfter;
起动器=x;
}否则{
第二次跑步乐趣();
}
}else如果(x==0){
如果(长度_1==3){
运行_first_func();
打破
}
第二次跑步乐趣();
}
}
log(wholeNumber+'.+不带逗号[1]);
}
用逗号()分隔数字;
一行: 165B缩小版(无IE):
用逗号分隔(x=(“+t”)。拆分(“.”),z=x[0]。替换(/(((\d{3})*?)(\.|$)/,“|$1”)。拆分(“|”)x[0]=z[0]+z[1]。替换(/({3})/g,“,$1”)。切片(!z[0]。长度),x.join(“)

或180B,即友好:
separate_by_逗号=函数(t){x=(“+t”).split(“.”);z=x[0]。replace(/((\d{3})*?)(\.|$)/,“|$1”).split(“|”);x[0]=z[0]+z[1]。replace(/(((.{3})/g,,$1”).slice(!z[0]。length);return x.join(“.”)

说明:
首先,你可以在一行内格式化它的格式,一行内的格式,一行内的格式,一行内的格式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,功能,功能,功能,功能,功能,分离,数字,数字,数字,用,用,数字,用,用逗号的形式的形式,数字,用,用逗号的形式的形式,一个形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,一行内的形式,功能,一行内的形式,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,功能,分离,分离,用,用,用逗号()分隔数字此代码仅重新格式化我的代码。但是,我认为除了我所做的之外,没有更多的方法来简化这段代码。
seperate_num_by_comma = function(number){//12345678.9
  var str = String(t);
  
  var withoutDot = str.split("."); //["12345678", "9"]
  
  var chunksOfThree = withoutDot[0].replace(/((\d{3})*?)(\.|$)/,"|$1");//"12|345678"
  chunksOfThree = chunksOfThree.split("|");//["12", "345678"]
  
  chunksOfThree[1] = chunksOfThree[1].replace(/(.{3})/g,",$1") //",345,678"
  
  if(chunksOfThree[0].length==0){
    chunksOfThree[1] = chunksOfThree[1].slice(1); //Fix for specific cases
  }
  
  withoutDot[0] = chunksOfThree[0] /*"12"*/ + chunksOfThree[1] /*",345,678"*/
  return withoutDot.join(".") //"12,345,678.9"
}