我不明白这个错误:dataobj不是一个函数

时间:2016-01-29 18:53:50

标签: javascript html angularjs

js code

  var dataObj = {};
  var shipDataObj = [];
  function shipData(shipDataObj){

      for(i=0;i<shipDataObj.length;i++){
          dataObj.push({
          addressLine1 : shipDataObj[i].addressLine1, 
          addressLine2 : shipDataObj[i].addressLine2,
          city : shipDataObj[i].city,
          state : shipDataObj[i].state,
          country : shipDataObj[i].country,
          zip : shipDataObj[i].zipCode,
          contactNum : shipDataObj[i].contactNumber
          });
   }
  }


   appServices.getAddress(userData.customerId).then(function (data){

                    if (data){  
                          console.log(data);
                          $scope.shipDataObj = data;
                          shipData(data);
                        console.log(dataObj);
                    }
                    });   

我只需要data.I中的7个属性。我在shipDataObj中复制了数据对象,并调用了一个名为shipData的函数。 shipData将推送shipDataObj中的属性。 shipDataObj可能有两个索引,比如0和1,每个索引都有7个属性。这7个属性我必须在dataObj中推送,这样我才能只显示这些属性。

我不明白为什么这个错误即将发生dataObj不是一个函数。

1 个答案:

答案 0 :(得分:4)

dataObj变量的值是对象引用,对象不具有.push()方法。如果你真的希望它是一个数组,它的初始化应该看起来像

var dataObj = [];