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

221
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 скрипт?

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

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

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

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

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

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

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

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

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

191