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

115
Visualizações
Object.assign() changes values of object even if object if frozen

I wanted to write some code that flattens the values of an object. But I do not understand why the following code snipped changes the value of the original data !!!

let data = {'row1' : {'a11':10, 'a12':11},
            'row2' : {'a21':23, 'a22':11}}

let flat = Object.assign(...Object.values(data))

console.log('flat : ',flat)
console.log('data : ',data)

will result in

flat :  { a11: 10, a12: 11, a21: 23, a22: 11 }
data :  {
  row1: { a11: 10, a12: 11, a21: 23, a22: 11 },   <--- WHY!!!!!!!!!!!
  row2: { a21: 23, a22: 11 }
}

This even happenes if I freeze data,

let data = {'row1' : {'a11':10, 'a12':11},
            'row2' : {'a21':23, 'a22':11}}

data = Object.freeze(data)

let flat = Object.assign(...Object.values(data))

console.log('flat : ',flat)
console.log('data : ',data)

which also results in

flat :  { a11: 10, a12: 11, a21: 23, a22: 11 }
data :  {
  row1: { a11: 10, a12: 11, a21: 23, a22: 11 },   <--- WHY!!!!!!!!!!!
  row2: { a21: 23, a22: 11 }
}

What is going on?

about 4 years ago · Juan Pablo Isaza
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