Tengo una tabla en mi aplicación, en la que introduzco muchos valores en una matriz. Estas matrices luego muestran el valor dentro de las columnas de mi tabla, en la parte inferior tengo un pequeño ejemplo de lo que quiero decir. A veces se necesita el doble del mismo valor.
¿Cuál es la mejor manera de reducir esto para que solo uno del mismo valor esté presente en las matrices ColumnValue? Código actual:
methods: { caseFileDetailedTableData(row) { console.log(row= return [ { columnName: I18n.t('ccenter.case_file.table.total_debt_outstanding'), columnValue: row.totalDebtOutstanding }, { columnName: I18n.t('ccenter.case_file.table.company_names'), columnValue: row.debtorInfo.companyNames.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.aliases'), columnValue: row.debtorInfo.aliases.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.birthdates'), columnValue: row.debtorInfo.birthdates.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.phones'), columnValue: row.debtorInfo.phones.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.emails'), columnValue: row.debtorInfo.emails.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.addresses'), columnValue: row.debtorInfo.addresses.join(', ') || '-', }, { columnName: I18n.t('ccenter.case_file.table.customer_numbers'), columnValue: row.debtorInfo.customerNumbers.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.contract_numbers'), columnValue: row.contractNumbers.join(', ') || '-' }, { columnName: I18n.t('ccenter.case_file.table.invoice_numbers'), columnValue: row.invoiceNumbers.join(', ') || '-' }, ] } } }Métodos anteriores utilizados:
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); } ... removeDuplicateValues(p){ return Object.keys(p).map(k => Array.isArray(p[k]) ? { [k]: removeDuplicates(p[k]) } : { [k]: p[k] }).reduce((acc, item) => ({...acc, ...item}), {}); }, removeDuplicates(arr){ return [...new Set(arr)]; console.log(arr) },EDITAR: Ejemplo de repetición citada:
Date of birth 1982-12-18 Phone numbers 354, 3541914408, 3541914408, 3541914408Según tengo entendido, una función como:
const removeDupes = (arr) => Array.from(new Set(arr));haría el truco
Por ejemplo, para los ejemplos de su número de teléfono:
{ columnName: I18n.t('ccenter.case_file.table.phones'), columnValue: removeDupes(row.debtorInfo.phones).join(', ') || '-' }