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

160
Views
Asignación de objetos anidados en Node.js

Supongamos que tengo un objeto ( baz ) de contenido variable. ¿Cómo puedo asignar un subobjeto ( foo ) con una clave ( baz ) a ese objeto en una línea?


Ejemplos:

 var baz = {} baz.foo.bar = 1; console.assert(baz === { foo: { bar: 1 } });

(o, en el caso de que foo ya esté definido)

 var baz = { foo: { 1: "b" } }; baz.foo.bar = 1; console.assert(baz === { foo: { 1: "b", bar: 2 } });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Es posible poner todo en una línea, aunque personalmente no lo recomendaría. Técnicamente estás haciendo dos cosas bastante diferentes:

  • Asigne un objeto como propiedad si el objeto aún no existe
  • Asigne una propiedad si el objeto ya existe, mutando el objeto existente

Puede asignar baz.foo o el objeto vacío a baz.foo y luego asignar el valor de la propiedad de la bar al objeto resultante:

 const baz = {}; (baz.foo ??= {}).bar = 1; console.log(baz.foo.bar); const baz2 = {}; (baz2.foo ??= {}).bar = 1; console.log(baz2.foo.bar);

preferiría

 // Create the object if it doesn't exist yet baz.foo ??= {}; // Assign the new nested value baz.foo.bar = 1;

La legibilidad del código es más importante que jugar al golf en la mayoría de los casos.

about 4 years ago · Juan Pablo Isaza Report

0

Para el primer caso:

baz.foo = {bar :1}

Y tu código funciona para el segundo caso.

(Tenga en cuenta que el siguiente código genera falso:

 a = {b:1} console.log(a==={b:1})

)

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!