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

236
Visualizações
La función Javascript para modificar la matriz de objetos devuelve la misma matriz

Tengo datos dentro de mi matriz, que se ve así.

 const arr = [ { devSth: { h1: [1], h2: [1], } }, ];

Tengo una función que debería modificar esta matriz. Se parece a esto:

 const modifyArr = (data) => { data.forEach(el => { let keys = el.devSth && Object.keys(el.devSth); keys.forEach(key => { el.devSth[key].map(el => { return { name: el, val: 'lalala' } }) }) }) return data; }

Entonces estoy usando mi función:

 const newArr = modifyArr(arr); console.log(newArr);

Rendimiento esperado:

 [{ devSth: { h1: [{name: 1, val: 'lalala'}], h2: [{name: 1, val: 'lalala'}] } }]

Salida real:

 [{ devSth: { h1: [1], h2: [1] } }]

Agradecería cualquier ayuda.

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

0

está asignando los valores, pero no los está configurando (línea 5):

 const modifyArr = (data) => { data.forEach(el => { let keys = el.devSth && Object.keys(el.devSth); keys.forEach(key => { el.devSth[key] = el.devSth[key].map(el => { return { name: el, val: 'lalala' } }) }) }) return data; }

esto no está probado.

about 4 years ago · Juan Pablo Isaza Relatório

0

No vuelve a asignar el resultado de la operación .map a las teclas originales h1 y h2 . Así que no los modifica.

solo cambia

 el.devSth[key].map(el => { return { name: el, val: 'lalala' } })

a

 el.devSth[key] = el.devSth[key].map(el => { return { name: el, val: 'lalala' } 

 const arr = [{ devSth: { h1: [1], h2: [1], } }, ]; const modifyArr = (data) => { data.forEach(el => { let keys = el.devSth && Object.keys(el.devSth); keys.forEach(key => { el.devSth[key] = el.devSth[key].map(el => { return { name: el, val: 'lalala' } }) }) }) return data; } const newArr = modifyArr(arr); console.log(newArr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Una forma alternativa de hacerlo:

 const arr = [{ devSth: {h1: [1], h2: [1]} }]; let obj = arr[0].devSth, number; for (const prop in obj){ number = obj[prop][0]; obj[prop] = [{name: number, val: 'lalala'}]; } console.log([{devSth: obj}])

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