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

186
Visualizações
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 Respostas
Responde à pergunta

0

Tiene entradas allí, por lo que puede simplemente:

 Object.fromEntries(lst)
about 4 years ago · Juan Pablo Isaza Relatório

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 Relatório

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 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