Я уверен, что для этого есть веская причина, но, похоже, мне это не кажется. Я работаю с 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
};
Заранее спасибо
Вы должны показать больше кода, чем это ... или иначе мы не увидим корень ошибки. Как инициализируется $ scope.booked и как он собирается. Является ли это объектом с числовыми ключами или массивом с цифровыми клавишами? –
Похоже, что у вас может быть некоторое нецелое значение в '$ scope.booked', вы можете сделать' console.log (gig); 'внутри цикла for, чтобы убедиться, что все они являются действительными целыми числами, так что это не пытаясь вызвать $ scope.booked [''] или что-то еще недействительное. * (В качестве альтернативы попробуйте сделать классический числовой цикл for, используя '$ scope.booked.length', и посмотреть, исчезла ли ошибка.) * –