Обращение к элементам массива

169
20 декабря 2018, 15:50

Мне на выходе дается такой массив (картинка ниже), как обратиться к элементам? Через цикл for не получается...

UPD

export class SocialBlockComponent implements AfterViewInit, OnInit {
  friends: FriendBirthdayPreview[] = [];
  countBirthdays;
ngOnInit() {
    if (this.authenticationService.isLoggedIn()) {
      try {
        this.loadBirthdays();
        this.countNewBirthdays();
      } catch (Error) {
        console.log(Error.message);
      }
    }
  }
loadBirthdays() {
    this.friends = [];
    this.friendService.getFriendsBirthdays(this.profileService.getProfileInfo().id).subscribe(
      (response) => {
        for (let i = 0; i < response.length; i++) {
          response[i]['checkedBirthday'] = false;
          const friend: FriendBirthdayPreview = new FriendBirthdayPreview;
          Object.assign(friend, response[i]);
          this.friends.push(friend);
        }
      }
    );
  }
countNewBirthdays() {
    console.log(this.friends); // Выводит то, что показано в скриншоте
    for (let i = 0; i < this.friends.length; i++) {
      console.log(this.friends[i]); // Ничего не выводит
    }
  }
Answer 1

Проблема в этой части кода:

this.loadBirthdays();
this.countNewBirthdays();

Вы вызываете countNewBirthdays, еще до того как пришел ответ от сервера, вы должны переместить countNewBirthdays в subscribe после цикла for:

for (let i = 0; i < response.length; i++) {
    response[i]['checkedBirthday'] = false;
    const friend: FriendBirthdayPreview = new FriendBirthdayPreview;
    Object.assign(friend, response[i]);
    this.friends.push(friend);
}
this.countNewBirthdays();
READ ALSO
Повторный запуск Content Script. Chrome Extension

Повторный запуск Content Script. Chrome Extension

Есть ли возможность повторно запускать Content скрипт?

155
Аналог оператора spread

Аналог оператора spread

Читаю про ES-2015 на http://learnjavascript

157
Какой алгоритм перемещения? JS

Какой алгоритм перемещения? JS

Вам необходимо создать приложение для автоматизации работы погрузочных кранов, позволяющих перемещать плиты между грузовыми автомобилями...

177
Отправить AJAX запрос на другой домен

Отправить AJAX запрос на другой домен

Как сделать чтобы работало?

158