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

181
Views
Javascript: inicialización rápida de objetos por lista

Supongamos que tengo el objeto a

 const a = { string1: 'prop1', val1: 'value1', string2: 'prop2', val2: 'value2' }

entonces puedo instanciar fácilmente un nuevo objeto constante b

 const b = { [a['string1']]: a['val1'], [a['string2']]: a['val2'] };

lo que resultará en

 b = { prop1: 'value1', prop2: 'value2' }

Pero, ¿y si en cambio tengo una lista lst

 const lst = [['prop1','value1'], ['prop2','value2']]

y quiero instanciar b de lst de una manera ordenada? Lo más lejos que llegué fue

 const b = {}; for(const tpl of lst){ b[tpl[0]] = tpl[1]; }

Pero a mí, que soy un gran fanático de los oneliners, no me gusta mucho este código. Entonces, ¿cómo puedo inicializar rápidamente b de una lista de propiedades?

EDITAR Parece que mi pregunta no se planteó de manera lo suficientemente abstracta. Permítanme volver a aclararlo. Supongamos que tengo la lista l = ['prop1', 'prop2'];

y la función fx(str) { return str.substring(1); } ¿Cómo podría ahora inicializar rápidamente el objeto b de tal manera que

 b = { prop1: 'rop1', prop2: 'rop2' }

No puedo hacer b= {[l[0]]=fx(l[0]), [l[1]]=fx(l[1])} ya que la lista l se genera dinámicamente y contendrá una cantidad desconocida de variables Entonces, de alguna manera, sería bueno hacer un bucle, por ejemplo, esta sintaxis inexistente

 b = { [[for str in l]] : fx(str) }
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Tiene entradas allí, por lo que puede simplemente:

 Object.fromEntries(lst)
about 4 years ago · Juan Pablo Isaza Report

0

Como mencionó Uroš , Object.fromEntries(lst) es el mejor método para esto. Como alternativa puedes usar reduce .

 const lst = [['prop1','value1'], ['prop2','value2']] const b = lst.reduce(function(prev,curr){prev[curr[0]]=curr[1];return prev;},{}) console.log(b);

about 4 years ago · Juan Pablo Isaza Report

0

Puedes usar el método .values()

 const b = {}; const lst = [ ['prop1', 'value1'], ['prop2', 'value2'], ]; for (const [key, value] of lst.values()) b[key] = value; console.log(b);

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!