Estoy usando el operador de propagación en una matriz como la siguiente:
 const addOne = false; const arr = [1, 2, 3] const arr1 = [...arr, ...(addOne && [8, 9])]; console.log(arr1)y tengo el error
 TypeError: (addOne && [8,9]) is not iterable at <anonymous>:4:32Mientras que si uso el operador de propagación en un objeto como:
 const addOne = false; const obj = { name: 'peter', age: 23 } const obj1 = { ...obj, ...(addOne && obj) } console.log(obj1)imprime la salida correcta
¿Alguien sabe por qué?
(false && obj) se evalúa como un valor booleano, por lo que no es iterable.
 Al usar el operador de propagación al construir su objeto obj1 , js usa un método diferente para extraer los pares de valores clave de un objeto (recuerde que un valor bool en js sigue siendo un objeto), por lo que no arrojará un error ya que está esperando un objeto como entrada.