Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

58
Views
Hacer objeto anidado por ruta aplanada

Tengo tal objeto anidado

 { "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", } }

escribí una función recursiva para aplanarlo, así que tengo

 { 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' }

ahora necesito escribir la función para obtener el objeto anidado original de aplanar uno y estoy atascado

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede hacer algo como esto para el ejemplo que proporcionó.

 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 Report

0

Podría adoptar un enfoque recursivo y construir al final un objeto a partir de entradas.

 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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!