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

162
Visualizações
¿Cómo filtrar valores de la manera más concisa?

Tengo varias tablas a las que presiono los valores de columna que tengo en el archivo, sin embargo, a menudo termino con múltiplos del mismo valor, lo que no se ve muy bien. Quiero reducirlo para que estos valores solo puedan aparecer una vez, acabo de hacer esto con otra tabla en mi proyecto, pero los datos se recopilan de manera diferente para esta tabla y no estoy seguro de cuál es la mejor manera de trabajar con mi Valores de columna dentro del método ya existente para filtrarlo a solo 1 de cada valor idéntico, en lugar de crear un nuevo método, se agradecería cualquier sugerencia. Adjuntaré lo que hice con mi otra tabla y mi problema actual a continuación.

Recopilación de datos de la tabla actual:

 participantDetails(participant) { return [ // take all column values, move into arrays, take out duplicates, { columnName: I18n.t('ccenter.case_file.table.role'), columnValue: participant.role, dataPointName: 'role' }, { columnName: I18n.t('ccenter.case_file.table.company_names'), columnValue: participant.companyNames.join(', ') || '-', dataPointName: 'companyName' }, { columnName: I18n.t('ccenter.case_file.table.aliases'), columnValue: participant.aliases.join(', ') || '-', dataPointName: 'name' }, { columnName: I18n.t('ccenter.case_file.table.birthdates'), columnValue: participant.birthdates.join(', ') || '-', dataPointName: 'birthdate' }, { columnName: I18n.t('ccenter.case_file.table.phones'), columnValue: participant.phones.join(', ') || '-', dataPointName: 'phone' }, { columnName: I18n.t('ccenter.case_file.table.emails'), columnValue: participant.emails.join(', ') || '-', dataPointName: 'email' }, { columnName: I18n.t('ccenter.case_file.table.addresses'), columnValue: participant.addresses.join(', ') || '-', dataPointName: 'address' }, { columnName: I18n.t('ccenter.case_file.table.customer_numbers'), columnValue: participant.customerNumbers.join(', ') || '-', dataPointName: 'customerNumber' } ] },

Tabla anterior:

 fields.forEach(field => { if (participant[field.fieldName].length > 0) { const uniqueValues = []; const uniqueElements = []; participant[field.fieldName].forEach(element => { if (!uniqueValues.includes(element.value)) { uniqueValues.push(element.value); uniqueElements.push(element); } }) result.push({ attributeName: field.fieldName, columnName: I18n.t(`ccenter.participant.table.${snakeCase(field.fieldName)}`), columnValues: uniqueElements, fieldClass: field.fieldClass, }) } }); return result; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Antes de llamar a los detalles del participantDetails(participant) , puede eliminar todos los valores duplicados del participant . Primero obtenga todas las claves del participant y luego verifique si su valor es una matriz. Si es así, llame a removeDuplicates para eliminar los duplicados de esa matriz.

 function removeDuplicateValues(p){ return Object.keys(p).map(k => Array.isArray(p[k]) ? { [k]: removeDuplicates(p[k]) } : { [k]: p[k] }).reduce((acc, item) => ({...acc, ...item}), {}); } function removeDuplicates(arr){ return [...new Set(arr)]; } const participant = { role: 'Role_A', companyNames: ['Company1', 'Company2', 'Company3', 'Company1'], aliases: ['aliases1', 'aliases2', 'aliases3', 'aliases1'], birthdates: ['birthdates1', 'birthdates2', 'birthdates3', 'birthdates2'], phones: ['phones-1', 'phones-2', 'phones-3', 'phones-2'], emails: ['emails-1', 'emails-2', 'emails-3', 'emails-3'], addresses: ['addresses-1', 'addresses-2', 'addresses-3', 'addresses-1'], customerNumbers: ['customerNumbers-1', 'customerNumbers-2', 'customerNumbers-3', 'customerNumbers-4'] }; const result = removeDuplicateValues(participant); console.log(result);

Use la función removeDuplicateValues dentro de los detalles del participantDetails :

 participantDetails(participant) { participant = removeDuplicateValues(participant); return [ ... ]; }
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