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

129
Visualizações
Asignar valores de objeto a otro objeto con un modelo específico Mecanografiado

Tengo una matriz de objetos que recibo de la API que se ve así:

 Array [ Object { "OPTIONNUMBER": "1", "OPTIONVALUE": "Here is your name ", }, Object { "OPTIONNUMBER": "2", "OPTIONVALUE": "Footer", }, Object { "OPTIONNUMBER": "3", "OPTIONVALUE": "https://google.com", }, ]

cómo asignarlo a un objeto con un nombre específico como [OPTIONNAME]: OPTIONVALUE ;

el modelo se ve así:

 export interface IOptions { opt1NAME: string; opt2FOOTER_TEXT: string; opt3LINK: string; }

el resultado final debería ser así:

 const options = { opt1NAME: 'Here is your name'; opt2FOOTER_TEXT: 'Footer'; opt3LINK: 'https://google.com'; }

Estoy tratando de map y assign , pero no se me ocurre cómo mapear correctamente los nombres de los objetos.

edit1:

 //appOptions here is an array of string that contains names let options = {}; for (let i = 0; i < appOptions.length; i++) { Object.assign(options, {[appOptions[i]]:arr[i].OPTIONVALUE }); }

esto funciona como si me diera el objeto correcto pero no se escribió correctamente.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

prueba esto

 const options = []; const op = ["opt1Name","opt2FOOTER_TEXT","opt3LINK"] // you can list all your needed options in op and it will work for (let index = 0; index < x.length; index+=3) { const option:{[key:string]:any} = {}; // x is the name of your api result const elements = x.slice(index,index+3); elements.forEach((ele,idx)=>{ option[op[idx]]=ele.OPTIONVALUE }) options.push(option) }
about 4 years ago · Juan Pablo Isaza Relatório

0

la solución fue crear un objeto vacío con contenido vacío (se usará para el contexto de todos modos):

 export const initOptions: IOptions = { opt01FOOTER: '', opt02FOOTER_TEXT: '', opt03LINK: '', }

luego en función donde queremos reestructurar:

 let options: IOptions = initOptions; const keys = Object.keys(options) as Array<keyof IOptions>; //arr is the array with names and values for (let i = 0; i < arr.length; i++) { //Object.assign() works here as well options[keys[i]] = arr[i].OPTIONVALUE; }

ahora podemos usar fácilmente options con nombres descriptivos:

 console.log(options.opt02FOOTER_TEXT);

si el número de opciones aumenta, tenemos que agregar una entrada más al modelo y un par clave-valor vacío a initOptions

Estaba tratando de encontrar una solución en torno a la creación de un objeto vacío, abierto para una mejor solución con options escritas

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