Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Diferencia entre [...obj] y {...obj}

Sé sobre el operador de propagación ... en JavaScript. Podemos usarlo tanto en matrices como en objetos:

 let user = { name: "aman", rollno: 11 } let newobj1 = {...user} let newobj2 = [...user] console.log(newobj1) console.log(newobj2)

¿Por qué newobj2 da un error, TypeError: user is not iterable , pero newobj1 funciona bien?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

{...user} simplemente crea un nuevo objeto con las mismas propiedades que el user .

[...user] , por otro lado, itera a través del objeto y agrega los valores que encuentra en la matriz que devuelve. Si no hay forma de iterar, ya que no hay forma predeterminada en un objeto simple (a diferencia de una matriz), entonces esto no funciona y genera el error que ha citado.

Como siempre, hay mucha más información sobre esto en MDN . Tenga en cuenta en particular la siguiente sección:

La sintaxis extendida (excepto en el caso de las propiedades extendidas) solo se puede aplicar a objetos iterables como Array o con funciones de iteración como map() , reduce() y assign() .

Muchos objetos no son iterables, incluido Object :

 let obj = {'key1': 'value1'}; let array = [...obj]; // TypeError: obj is not iterable

Para usar la sintaxis extendida con estos objetos, deberá proporcionar una función de iterador.

Y tenga en cuenta que la "sintaxis extendida" a la que se hace referencia aquí es la versión de "distribución de matriz". "Dispersión de objetos" es bastante diferente y se explica en esta parte de la página,

about 4 years ago · Juan Pablo Isaza Relatório

0

{...usuario}

significa que crea un nuevo objeto y distribuye todos los datos del user dentro de él.

Cuando se supone que debes ejecutar

[...usuario]

intenta crear una nueva matriz y luego distribuir el objeto de user dentro.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda