2016-07-10 2 views
1

Я уверен, что для этого есть веская причина, но, похоже, мне это не кажется. Я работаю с Angular, и я использую функцию getFullYear() внутри цикла for for, которая проходит через массив объектов. Когда я использую, например, забронировал [i] .getFullYear(), (будучи счетчиком в определении «для»), он говорит, что забронировано [i] .getFullYear не является функцией, но если я скажу, что забронировано [0] .getFullYear - просто замените счетчик на число (или var с числом, созданным внутри цикла) - оно работает.getFullYear не работает при использовании счетчика контуров

например.

for (gig in $scope.booked){ 
      var i =0; //new var to use as a counter 
      $scope.booked[gig].visualDate={ 
       year: $scope.booked[i].when.getFullYear(), //works 
       //year: $scope.booked[gig].when.getFullYear() //does not work 
      }; 
      //i++; I can't use it as a counter 
    }; 

Заранее спасибо

+0

Вы должны показать больше кода, чем это ... или иначе мы не увидим корень ошибки. Как инициализируется $ scope.booked и как он собирается. Является ли это объектом с числовыми ключами или массивом с цифровыми клавишами? –

+0

Похоже, что у вас может быть некоторое нецелое значение в '$ scope.booked', вы можете сделать' console.log (gig); 'внутри цикла for, чтобы убедиться, что все они являются действительными целыми числами, так что это не пытаясь вызвать $ scope.booked [''] или что-то еще недействительное. * (В качестве альтернативы попробуйте сделать классический числовой цикл for, используя '$ scope.booked.length', и посмотреть, исчезла ли ошибка.) * –

ответ

-2

Вы должны показать больше кода, чем ... или иначе мы не увидим корень ошибки.

Как $ scope.booked Инициализировано и как оно собирается. Является ли это объектом с числовыми ключами или массивом с цифровыми клавишами?

+1

Вопрос к OP должен быть добавлен в качестве комментария? –

+0

o ok Я думал, что не могу этого сделать. –

Смежные вопросы