Синтаксическая ошибка в объекте, содержащем массив объектов

#javascript

Вопрос:

Мне интересно, почему приведенный ниже код неверен. Это выдает следующую ошибку: SyntaxError: missing ] in computed property name . Если я удалю внешние фигурные скобки, это сработает. Но мне интересно, почему это не сработало бы с фигурными скобками.

 const example2 = {[
  {
    'title': 'Hello World',
    'Author': 'John Doe',
  },
  {
    'title': 'Hello World2',
    'Author': 'John Doe',
  },
]};

console.log(example2); 

Комментарии:

1. Потому что фигурные скобки означают, что это объект. Зачем вам это нужно? Вам нужен массив объектов: так что начните с [ этого .

2. @Терри, потому что именно так я использую его в свойстве объекта react.

Ответ №1:

Объекты имеют пары ключ/значение. Ваш объект example2 имел массив (значение) без ключа.

 const example2 = {"array" : [
  {
    'title': 'Hello World',
    'Author': 'John Doe'
  },
  {
    'title': 'Hello World2',
    'Author': 'John Doe'
  }
]};

console.log(example2); 

Ответ №2:

Вы помещаете массив внутри объекта, не определяя ключ (или свойство).

Объект-это пара ключ/значение, вы не можете указать значение без ключа.

 var myObj = {
  myArr: [{
      'title': 'Hello World',
      'Author': 'John Doe',
    },
    {
      'title': 'Hello World2',
      'Author': 'John Doe',
    },
  ]
};
 

Ответ №3:

Вы получаете эту ошибку:

Синтаксическая ошибка: отсутствует ] в вычисляемом имени свойства

Потому что произошла ошибка с синтаксисом инициализатора объекта.

Объект можно создать с помощью “key: value” пары.

И в вашем случае вы инициализировали example2 объект без ключа.

 const example2 = {
  "key": [{
      'title': 'Hello World',
      'Author': 'John Doe',
    },
    {
      'title': 'Hello World2',
      'Author': 'John Doe',
    },
  ]
};

console.log(example2);