TypeError:在对象

时间:2019-07-14 19:44:32

标签: javascript

我有一个数字数组InvitationRowsTrue 4,5 它通过html表单传递,并输出为字符串4,5

数据到达数组中的3个位置:

0: 4

1: ,

2: 5

3: ,

4: 6

我试图通过遍历数组查找逗号并使用.splice方法删除所有逗号来删除所有逗号,因此inviteRowsTrue数组最终看起来像:

0: 4

1: 5

2: 6

我不断得到:

  

TypeError:在对象错误中找不到函数拼接

我的代码段:

    var inviteRowsTrue = calinvite.inviteRowsTrue; //data comes from an html form as 4,5 

     for(var p=1;p<inviteRowsTrue.length;p++){
     if(inviteRowsTrue[p] == ","){
       console.log("Found a comma");
       console.log("Before we remove the comma inviteRowsTrue contains: "+inviteRowsTrue);
       inviteRowsTrue.splice(p, 1);
       console.log("Removed that comma, now inviteRowsTrue contains: "+inviteRowsTrue); 

     }
  }

我的console.log显示以下输出:

  

2019年7月14日,下午2:26:38调试发送邀请

     

2019年7月14日,下午2:26:39 DEBUG找到一个逗号

     

2019年7月14日,下午2:26:39调试之前,我们删除逗号InvitationRowsTrue包含:4,5

     

2019年7月14日下午2:26:39错误TypeError:在对象4,5中找不到函数拼接

我在做什么错?谢谢!

2 个答案:

答案 0 :(得分:2)

您正在尝试将方法.splice()应用于ObjectObject没有这种方法,只有Array。如您在帖子中所写,如果对象中的键是有序的且对您而言无关紧要,则可以这样做,以便将对象的值放入数组中:

inviteRowsTrue = Object.values(inviteRowsTrue);

答案 1 :(得分:0)

由于您的注释表明您的数组实际上不是数组,而是字符串对象,因此可以使用一个衬线来消除逗号:

inviteRowsTrue = inviteRowsTrue.replace(/,/g, "")