Задать вопрос
@bqio
https://bqio.github.io/

Как сделать массив с объектами и его свойствами?

Когда пишу так:
var user = [{
    name: ''
}];

user[0].name = 'Alex';
console.log(user[0].name);

Всё работает нормально. Но стоит написать так:
var user = [{
    name: ''
}];

user[1].name = 'Alex';
console.log(user[1].name);

Выводит ошибку, в чём проблема?

Решение найдено.
var game = {
    users: [{}]
}

game.users.push({});

game.users[0].name = 'Alex';
game.users[1].name = 'Jhon';

console.log(game.users[0].name);
console.log(game.users[1].name);

Результат:
Alex
Jhon
  • Вопрос задан
  • 177 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Aves
var user = new Proxy(
  [],
  {
    get(target, i) {
      if (!target[i]) target[i] = {};
      return target[i];
    }
  }
);

user[1].name = 'Alex';
console.log(user[1].name);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@YemSalat
user[0] // первый элемент массива
user[1] // второй элемент массива

дальше сам
Ответ написан
Комментировать
qork
@qork
{ background: #F00B42 }
в чём проблема?

Нет свойства name у undefined (элемента с индексом 1 не существует)
Ответ написан
Ваш ответ на вопрос

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

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