EKCTPEMICT
@EKCTPEMICT
FrontEnd Developer

Переменная в вызове объекта в javascript?

Есть объект вида
var book = {
        author__1: {
            name: 'John',
            surname: 'Smith'
        },
        author__2: {
            name: 'John',
            surname: 'Smith'
        }
    };

Что бы получить "John" в консоли, нужно обратиться к значению:
console.log(book.author__1.name);

Можно ли и как (если можно) вместо author__1 в book.author__1.name передавать переменную? Смысл в цикле проходится по всем author__{число} вытягивая из них данные как-то так:
for (var i=1; i<max; i++) {
        var currentauthor // генерированный каким-то образом
        console.log(book.currentauthor .name);
    }
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
var book = {
  author__1: {
    name: 'John',
    surname: 'Smith'
  },
  author__2: {
    name: 'John',
    surname: 'Smith'
  }
};
var max = Object.keys(book).length;

for (var i = 1; i <= max; i++) {
  console.log(book['author__' + i].name);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TheBububo
Вообще авторы так и просятся быть массивом
var book = {
  authors: [{
    name: 'John',
    surname: 'Smith'
  },
   {
    name: 'Jack',
    surname: 'Green'
  }]
};
console.log(book.authors[0].name);  // John
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы