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

59
Visualizações
Make nested object by flatten path

I've got such nested object

{

"incl_1_1": "val_incl_1_1",

"incl_1_2": "val_incl_1_2",

"incl_1_1_child": {

"incl_2_1": "val_incl_2_1",

"incl_2_2": "val_incl_2_2",

},

"incl_1_2_child": {

"incl_2_1": "val_incl_2_1",

"incl_2_2": "val_incl_2_2",

}
}

wrote recursive function to flatten it, so i've got

{
  incl_1_1: 'val_incl_1_1',
  incl_1_2: 'val_incl_1_2',
  'incl_1_1_child.incl_2_1': 'val_incl_2_1',
  'incl_1_1_child.incl_2_2': 'val_incl_2_2',
  'incl_1_2_child.incl_2_1': 'val_incl_2_1',
  'incl_1_2_child.incl_2_2': 'val_incl_2_2'
}

now i need to write function to get original nested object from flatten one and I'm stuck

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

0

You can do something like this for the example you provided.

const obj = {
  incl_1_1: 'val_incl_1_1',
  incl_1_2: 'val_incl_1_2',
  'incl_1_1_child.incl_2_1': 'val_incl_2_1',
  'incl_1_1_child.incl_2_2': 'val_incl_2_2',
  'incl_1_2_child.incl_2_1': 'val_incl_2_1',
  'incl_1_2_child.incl_2_2': 'val_incl_2_2'
}

const original={}
const keys = Object.keys(obj)


for(let i=0; i<keys.length; i++){
  let prop, nested
  if (!keys[i].includes(".")){
    original[keys[i]] = obj[keys[i]] 
  } else {
    prop= keys[i].split('.')[0]
    nested = keys[i].split('.')[1]
    original[prop] ? original[prop][nested] =obj[keys[i]] : original[prop] = {[`${nested}`]: obj[keys[i]]}
  }
}

console.log(original)

about 4 years ago · Juan Pablo Isaza Relatório

0

You could take a recursive approach and build at the end an object from entries.

const
    getEntries = object => Object
        .entries(object)
        .flatMap(([k, v]) => v && typeof v === 'object'
            ? getEntries(v).map(([l, v]) => [`${k}.${l}`, v])
            : [[k, v]]
        ),
    data = { a: "aa", b: "bb", c: { d: "dd", e: "ee" }, f: { g: "gg", g: "gg", h: { i: 'ii' } } },
    result = Object.fromEntries(getEntries(data));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

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