Почему нельзя использовать оператор распространения Javascript после ключа объекта? - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть следующий код:

const array = [{
    a: 'a',
    b: 'b'
  }];

  console.log(...array);

  const store = {
    obj: ...array
  }

console.log будет печатать результаты просто отлично. Однако при попытке установить ключ store я получаю Parsing error: Unexpected token.

Не является ли ...array допустимым объектом для присвоения obj ключу store?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Синтаксис распространения работает внутри объектов или повторяется. В вашем случае вам нужно распределить элементы в массиве.

Синтаксис спреда

Синтаксис распространения позволяет расширять итерацию, такую ​​как выражение массива или строку, в местах, где ожидается ноль или более аргументов (для вызовов функций) или элементов (для литералов массива) или выражение объекта, которое должно быть развернуто в местах, где ожидается ноль или более пар ключ-значение (для литералов объекта).

const array = [0, 1, 2]
const store = {
  obj: [...array] // <-- the array is being spreded into an array.
}

console.log(store)
0 голосов
/ 10 ноября 2018

... разбрасывает массив на отдельные элементы. Массив может иметь более 1 элемента и, следовательно, будет более 1 RHS, и это будет недействительным. Следовательно, вы можете использовать obj : {...array} или obj : [...array]

const array = [{a: 'a',b: 'b'},{c: 'c', d: 'd'}];

console.log(...array);

const store = {
  obj: {...array},
  obj1: [...array]
};
  
  console.log(store);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...