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

148
Views
Extraiga las propiedades y los valores de un objeto en un nuevo objeto

Quiero un trazador de líneas pequeño y agradable para usar una matriz, por ejemplo ['postcode','town'] , y luego extraer solo estas propiedades de un objeto más grande.

Así que esto:

 const fields = ['postcode','town']; const obj = { name: 'test', postcode: 'SS2 5JJ', town: 'Somewhere', other: 'info' }

se convertiría en esto:

 const filtered = { postcode: 'SS2 5JJ', town: 'Somewhere', }

Encontré esto, sin embargo, lo he entendido mal, creo:

 const fields = ['postcode','town']; Object.keys(fields).map(e => fields[e])

¿Cuál es la mejor manera de hacer esto?

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

0

Podrías usar Array.reduce

 const fields = ['postcode', 'town']; const obj = { name: 'test', postcode: 'SS2 5JJ', town: 'Somewhere', other: 'info' }; const filteredObj = fields.reduce((acc, cur) => Object.assign(acc, { [cur]: obj[cur] }), {}); console.log(filteredObj);

about 4 years ago · Juan Pablo Isaza Report

0

Puede asignar los fields de su matriz a [key, value] lo que creará una matriz de pares [key, value] . Una vez que tenga esta matriz, puede usar Object.fromEntries() para construir su objeto para cada par clave-valor:

 const fields = ['postcode','town']; const obj = { name: 'test', postcode: 'SS2 5JJ', town: 'Somewhere', other: 'info' }; const res = Object.fromEntries(fields.map(key => [key, obj[key]])); console.log(res);

about 4 years ago · Juan Pablo Isaza Report

0

"Mejor" es, por supuesto, un concepto subjetivo. Pero creo que la función de reducción es la forma más limpia de hacerlo. De esa manera no hay necesidad de encadenar diferentes funciones.

 const filtered = fields.reduce((prev, key) => ({[key]: obj[key], ...prev}), {});
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!