У меня есть функция, которая является циклом сама по себе и в этом цикле я создаю объект. Но когда после цикла я пытаюсь получить доступ к свойствам объекта, я получаю ответ неопределенного.Javascript: Свойства объекта undefined (очень конкретный случай)
Когда я пытаюсь просто console.log самого объекта, я получаю его. Проблема связана со свойствами.
Я был бы признателен, если бы кто-то мог мне помочь. Я сделал хорошее исследование, но не смог найти решение. Мое дело очень странно. Все хорошо, кроме свойств. Мне нужна помощь старших разработчиков.
Вот код.
var countMap = {};
var counter = 0;
$('#share_table_body').find('.js-post').each(function() {
var totalCount = 0;
$(this).find('.js-social').each(function() {
var $this = $(this);
var socialType = $(this).data('social-type');
var url = $this.closest('.js-post').data('url');
getShareStatus(url, socialType)
.then(function (shareCount) {
$this.text(shareCount);
if (!countMap[socialType]) {
countMap[socialType] = 0;
}
if (!countMap['total']) {
countMap['total'] = 0;
}
countMap[socialType] += shareCount;
totalCount += shareCount;
countMap['total'] += shareCount;
$this.siblings('.js-total').text(totalCount);
})
.fail(function (err) {
$('.error-notice').removeClass('hidden');
$this.css('color', 'red').text('!');
});
});
counter++;
});
if (counter == $('#share_table_body').find('.js-post').length) {
console.log(countMap);
$('.total-facebook').text(countMap['facebook']);
}
'getShareStatus' содержит асинхронную функцию – Beginner
Этот вопрос является дубликатом, да, но лучше ответил [Почему моя переменная неизменна после изменения ее внутри функции?] (Http://stackoverflow.com/questions/ 23667086), чем на вопрос, упомянутый в официальном уведомлении о дублировании. –