为什么我收到一条错误消息,即.replace不是函数?

anl*_*eon 12 javascript jquery replace function

我有这个功能:

function countLitreKgSums(cProductIds){
  var cLitreKgSums = new Array();
  var cWeek = 0;
  for(i=0;i<cProductIds.length;i++){
    var cLitreKgSum = 0;
    $("#plan_table td[class='week']").each(function(){
            cWeek = $(this).html();
            var cLitreKgValue = $("input[name*='plan_table_week" + cWeek + "_prod" + cProductIds[i] + "_']").val();
            if (cLitreKgValue == "") {
                cLitreKgValue = 0;
            }
            cLitreKgValue = cLitreKgValue.replace(/,/g, '.').replace(/[^\d\.]/g, '').replace(/\s/g, '');
            cLitreKgValue = parseFloat(cLitreKgValue);
            cLitreKgSum += cLitreKgValue;
       });
       cLitreKgSum = Math.round(cLitreKgSum * 100) / 100;
       cLitreKgSums[i] = cLitreKgSum;
  }
  return cLitreKgSums;
  //console.log(cLitreKgSums);
}
Run Code Online (Sandbox Code Playgroud)

我收到错误信息,即.replace不是一个函数,但在其他函数中它可以正常工作.有什么不同?

And*_*yle 21

cLitreKgValue可能是您尝试调用replace它的数字,而不是字符串.在这种情况下,错误是正确的 - 数字没有replace方法.

  • ...并且*正确*它(因为我认为anleon也在寻找答案),将`cLitreKgValue = 0;`更改为`cLitreKgValue ="0"; (3认同)

Jon*_*ust 14

改变这个:

cLitreKgValue.replace(/,/g, '.')
Run Code Online (Sandbox Code Playgroud)

至

("" + cLitreKgValue).replace(/,/g, '.')
Run Code Online (Sandbox Code Playgroud)

  • 最好将`cLitreKgValue = 0;`改为`cLitreKgValue ="0";`我想...... (2认同)