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

168
Visualizações
Filtrado de objetos que tienen una combinación única de valores

Tengo una serie de objetos que se ven así:

 [{"Account Name":"John Hill","Account Type":"Services","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"John Hill","Account Type":"Training","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"Dave Butcher","Account Type":"Engieering","Organization":"A","Account Address":"Level 1/55 Sunshine Blvd"}, {"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd}, {"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd"}]

De los objetos anteriores, hay algunos nombres de cuenta duplicados, pero son únicos debido al tipo de cuenta. Estoy tratando de encontrar una manera de filtrarlo para que una combinación de valores clave haga que un objeto sea único, en lugar de una sola clave. Algo así como filtrar el Account Name de la Account Type de cuenta.

También noté que algunas soluciones crearían una nueva matriz e incluirían solo las claves para filtrar, pero me gustaría que la solución conserve todas las claves de un objeto en lugar de crear un nuevo objeto con claves menores.

El resultado esperado se vería así:

 [{"Account Name":"John Hill","Account Type":"Services","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"John Hill","Account Type":"Training","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"Dave Butcher","Account Type":"Engieering","Organization":"A","Account Address":"Level 1/55 Sunshine Blvd"}, {"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd}]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

 const array = [{"Account Name":"John Hill","Account Type":"Services","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"John Hill","Account Type":"Training","Organization":"A","Account Address":"2 Westall Rd"}, {"Account Name":"Dave Butcher","Account Type":"Engieering","Organization":"A","Account Address":"Level 1/55 Sunshine Blvd"}, {"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd"}, {"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd"}] const filteredArr = array.reduce((acc, current) => { const x = acc.find(item => (item['Account Name'] === current['Account Name'] ) && (item['Account Type'] === current['Account Type'])); if (!x) { return acc.concat([current]); } else { return acc; } }, []); console.log(filteredArr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Usa un Map . Recorra la matriz y, en cada iteración, cree una clave a partir del Account Name y el Account Type de cuenta, y set todo el objeto como su valor. Finalmente, use values() para devolver una matriz deduplicada.

 const data=[{"Account Name":"John Hill","Account Type":"Services",Organization:"A","Account Address":"2 Westall Rd"},{"Account Name":"John Hill","Account Type":"Training",Organization:"A","Account Address":"2 Westall Rd"},{"Account Name":"Dave Butcher","Account Type":"Engieering",Organization:"A","Account Address":"Level 1/55 Sunshine Blvd"},{"Account Name":"Jake Wellington","Account Type":"Management",Organization:"A","Account Address":"11 Maroochy Rd"},{"Account Name":"Jake Wellington","Account Type":"Management",Organization:"A","Account Address":"11 Maroochy Rd"}]; const map = new Map(); for (const obj of data) { const key = `${obj['Account Name']}-${obj['Account Type']}`; map.set(key, obj); } console.log([...map.values()]);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar el enfoque de grupo hash para filtrar por varias propiedades:

 const data = [{"Account Name":"John Hill","Account Type":"Services","Organization":"A","Account Address":"2 Westall Rd"},{"Account Name":"John Hill","Account Type":"Training","Organization":"A","Account Address":"2 Westall Rd"},{"Account Name":"Dave Butcher","Account Type":"Engieering","Organization":"A","Account Address":"Level 1/55 Sunshine Blvd"},{"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd"},{"Account Name":"Jake Wellington","Account Type":"Management","Organization":"A","Account Address":"11 Maroochy Rd"}]; const uniqHashes = data.reduce((acc, item) => { const hash = [item['Account Name'], item['Account Type']].join('-'); acc[hash] ??= item return acc; }, {}); const uniqs = Object.values(uniqHashes); console.log(uniqs);
 .as-console-wrapper { max-height: 100% !important; top: 0 }

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