Usando React, tengo datos de una respuesta API. Mapeé los datos y estoy almacenando el ID de visita, que sería el identificador principal, en una variable. Lo que me gustaría hacer es buscar los valores de ID de visita coincidentes y almacenarlos en una nueva matriz, el problema que tengo es que cada instancia se almacena en su propia matriz, por ejemplo:
['7065682'] en el índice 0
['7065682'] en el índice 1
['7065682'] en el índice 2
['7047674'] en el índice 3
['7047674'] en el índice 4
Me gustaría revisar cada iteración y verificar todo, colocar valores coincidentes en su propia matriz para poder escribir algo de lógica basada en cada valor único. Simplemente no entiendo cómo mirar a través de la siguiente iteración. Aquí está mi código y la función 'duplicateVisitID' que he estado probando, pero no me da los resultados que estoy buscando.
{ Object.keys(this.state.EncounterData).length !== 0 ? Object.values(this.state.EncounterData).map((encounter, i) => { const visitID = [encounter.resource.identifier[1].value]; console.log(visitID, i); const duplicateVisitID = function (visitID) { if (visitID[i] === visitID[i]) return [visitID.concat(visitID[i])] }Si entiendo correctamente, ¿quieres una matriz de valores únicos? Si es así, puede usar la función de mapa y agregar valores únicos a una matriz si el valor aún no está en ella:
const uniqueVals = []; EncounteredData.map((visitID) => { if (!uniqueVals.includes(visitID[0])) { uniqueVals.push(visitID[0]); } });No estoy seguro de qué quiere hacer, pero si entendí bien, quiere una nueva matriz con solo cadenas que sean únicas, no repetitivas. Si es así, vea el código a continuación. Este no es el mejor rendimiento debido a la iteración dentro de la iteración, pero funcionará para usted. Puede optimizarlo más tarde aplicando algunos algoritmos.
El newArr es igual a ['7065682', '7047674']
const EncounteredData = [['7065682'], ['7065682'], ['7065682'], ['7047674'], ['7047674']]; const newArr = []; for(let i of EncounteredData) { for(let j of EncounteredData) { if((i[0] !== j[0]) && !newArr.includes(i[0])) newArr.push(i[0]); } } console.log(newArr);