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

235
Visualizações
Eliminar toda la matriz de objetos que contienen la misma clave y tiene al menos un valor verdadero

Hola, tengo una matriz de objetos cuya cadena comienza con un prefijo específico y si ese valor clave es verdadero, elimine todos los objetos en una matriz que contiene la misma clave (prefijo)

a continuación se muestra la matriz de objeto:

 const data = [{ field_name_key: "Recive_IsViaEmail", fieldValue: false }, { field_name_key: "Recive_IsViaSMS", fieldValue: false }, { field_name_key: "Sender_IsViaEmail", fieldValue: false }, { field_name_key: "Sender_IsViaSMS", fieldValue: true }, ]

aquí "Sender_IsViaSMS" contiene verdadero, por lo tanto, elimine todos los objetos que comienzan con la clave de prefijo Sender_IsVia

El resultado final es este:

 const data = [{ field_name_key: "Recive_IsViaEmail", fieldValue: false }, { field_name_key: "Recive_IsViaSMS", fieldValue: false } ]

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Una solución ineficiente pero corta sería usar Array.filter y establecer la condición de la devolución de llamada para determinar si data contienen un elemento con el mismo prefijo de propiedad field_name_key y cuya propiedad fieldValue es true :

 const data=[{field_name_key:"Recive_IsViaEmail",fieldValue:false},{field_name_key:"Recive_IsViaSMS",fieldValue:false},{field_name_key:"Sender_IsViaEmail",fieldValue:false},{field_name_key:"Sender_IsViaSMS",fieldValue:true}]; const res = data.filter(e => !data.find(f => f.field_name_key.split("IsVia")[0] == e.field_name_key.split("IsVia")[0] && f.fieldValue)) console.log(res)

over 4 years ago · Santiago Trujillo Relatório

0

Puede crear una función que primero encuentre las entradas para eliminar, luego elimine una por una:

 const data = [{ field_name_key: "Recive_IsViaEmail", fieldValue: false }, { field_name_key: "Recive_IsViaSMS", fieldValue: false }, { field_name_key: "Sender_IsViaEmail", fieldValue: false }, { field_name_key: "Sender_IsViaSMS", fieldValue: true }, ] const sanitizeData = (list) => { // find entry keys to remove const toRemove = list.reduce((prev, el) => { if(el.fieldValue === true) return el.field_name_key.split('_')[0] }) // remove const removed = list.filter(el => { return !toRemove.includes(el.field_name_key.split('_')[0]) }) return removed } console.log(sanitizeData(data))

over 4 years ago · Santiago Trujillo Relatório

0

Cree una lista de los prefijos para eliminar primero, luego simplemente ejecute un filtro.

Sin embargo, no estoy seguro de cómo se le ocurre el prefijo de un nombre de campo determinado. Dado su ejemplo, espera que "Sender_IsViaSMS" también elimine "Recive_IsViaSMS". Pero debería poder tomar esto y adaptarlo como mejor le parezca.

 const data=[{field_name_key:"Recive_IsViaEmail",fieldValue:false},{field_name_key:"Recive_IsViaSMS",fieldValue:false},{field_name_key:"Sender_IsViaEmail",fieldValue:false},{field_name_key:"Sender_IsViaSMS",fieldValue:true}]; const prefixsToAxe = new Set(); // Having trouble with this part in your question, so ran with this, replace as you see fit const determinePrefix = (field_name_key) => field_name_key.split('IsVia')[0]; for (const entryToAxe of data.filter(x => x.fieldValue === true)) { const prefixToAxe = determinePrefix(entryToAxe.field_name_key); prefixsToAxe.add(prefixToAxe); } const purged = data.filter(entry => { const prefixInQuestion = determinePrefix(entry.field_name_key); return !prefixsToAxe.has(prefixInQuestion); }) console.log(purged)

over 4 years ago · Santiago Trujillo 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