2016-01-29 3 views
1

JS кодЯ не понимаю эту ошибку: dataobj не является функцией

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); 
        } 
        }); 

мне нужно только 7 свойства из data.I копироваться объект данных в shipDataObj и называется функция с именем shipData. shipData будет толкать свойства в shipDataObj. shipDataObj может иметь два индекса, такие как 0 и 1, каждый из них имеет эти 7 свойств. Эти 7 свойств мне нужно вдавить dataObj, чтобы я мог отображать только эти свойства.

Я не понимаю, почему эта ошибка наступает dataObj не является функцией.

+3

уверен, что он не говорит 'dataObj.push' не является функцией? – charlietfl

+0

@charlietfl да, это – Pallavi

+0

ok ... так что ключ есть ... все массивы должны иметь 'push', поэтому, если он недоступен, возникает проблема' dataObj' не быть массивом. Таким образом, вы получите ответ точки. Важно внимательно прочитать ошибку – charlietfl

ответ

4

Значение переменной dataObj является ссылкой на объект, а объекты не имеют метода .push(). Если вы действительно хотите, чтобы это был массив, его инициализация должна выглядеть так:

var dataObj = []; 
Смежные вопросы