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

249
Visualizações
Eliminar entradas de un objeto donde las claves no están en una matriz

Estoy tratando de eliminar entradas de un objeto para que solo incluya aquellas que están en una matriz. Entonces tengo una matriz required :

 const required = ['accountNumber', 'packRequested', 'collectionDate']

Y un objeto de touchedFields :

 const touchedFields = { accountNumber: true, sortCode: false, account: true, collectionDate: false, packRequested: false }

Esto es lo que busco:

 const touchedFields = { accountNumber: true, collectionDate: false, packRequested: false }

¿Cómo se puede lograr esto?

En su lugar, intenté crear una salida de matriz (ya que no pude hacer el objeto), recorrer cada entrada de objeto y recorrer cada clave de matriz, comparar valores y empujar a una nueva matriz si los valores coinciden:

 let newArr = [] for (let [key, value] of Object.entries(requiredFields)) { Object.keys(touchedFields).forEach((cur) => { if (cur == value) { newArr.push({cur: value}) } }) } console.log(newArr)

Pero incluso eso no establece los valores correctamente, ya que establece la clave como cur y no la variable cur real:

 [{cur: 'accountNumber'}, {cur: 'packRequested'}, {cur: 'collectionDate'}]

Cualquier ayuda sería muy apreciada.

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

0

const required = ['accountNumber', 'packRequested', 'collectionDate'] const touchedFields = { accountNumber: true, sortCode: false, account: true, collectionDate: false, packRequested: false } let result = Object.fromEntries( Object.entries(touchedFields) .filter(([k,v]) => required.includes(k)) ) console.log(result)
about 4 years ago · Juan Pablo Isaza Relatório

0

Usar el método Array.reduce

 const required = ['accountNumber', 'packRequested', 'collectionDate'] const touchedFields = { accountNumber: true, sortCode: false, account: true, collectionDate: false, packRequested: false } const result = required.reduce((acc, key) => { acc[key] = touchedFields[key]; return acc; }, {}); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Si desea modificar el objeto original, puede recorrer las claves y eliminar las que no están en la matriz requerida.

 const required = ['accountNumber', 'packRequested', 'collectionDate'] const touchedFields = { accountNumber: true, sortCode: false, account: true, collectionDate: false, packRequested: false } const pruneObject = (obj, keys) => Object.keys(obj).forEach( key => !required.includes(key) && delete obj[key] ); pruneObject(touchedFields, required); console.log(touchedFields);

Si no desea alterar el objeto original, puede recorrer la matriz y crear un nuevo objeto a partir de ella.

 const required = ['accountNumber', 'packRequested', 'collectionDate'] const touchedFields = { accountNumber: true, sortCode: false, account: true, collectionDate: false, packRequested: false } const inclusivePick = (obj, keys) => Object.fromEntries( keys.map(key => [key, obj[key]]) ); const result = inclusivePick(touchedFields, required); console.log(result);

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