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

136
Visualizações
cómo hacer que una matriz sea única usando el método de reducción de javascript

He creado un ejemplo para que entiendas el problema.

 let arr = []; arr.push({ module_id: 41, name: 'first' }, { module_id: 41, name: 'second', important: true, }, { module_id: 43, name: 'third' }); const lookup = arr.reduce((a, e) => { a[e.module_id] = ++a[e.module_id] || 0; return a; }, {}); console.log('lookup is', lookup); let unique = []; arr.filter((e) => { if (lookup[e.module_id] === 0) { unique.push(e) } }) console.log('unique', unique)

primero, tengo una matriz arr vacía y estoy insertando 3 objetos en ella.
Observe, el module_name . Hay dos repeticiones y me gustaría usar la segunda con el nombre de propiedad important .
He usado reduce aquí para averiguar cuál se repite en función de module_name . devolverá 1 con la clave de 41 y 0 para 43. Quiero usar ambos pero no quiero duplicar en mi matriz unique . Actualmente, enviaré solo aquellos elementos que son únicos, en nuestro caso module_id: 43 .
Ahora, ¿cómo puedo obtener el valor duplicado (con propiedad important )?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puede tomar un Map y obtener solo los primeros valores distintos o los que tienen una bandera importante.

 const array = [{ module_id: 41, name: 'first' }, { module_id: 41, name: 'second', important: true }, { module_id: 43, name: 'third' }], result = Array.from(array .reduce( (m, o) => m.set(o.module_id, !o.important && m.get(o.module_id) || o), new Map ) .values() ); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

probar

 let unique = []; arr.filter((e) => { if (lookup[e.module_id] === 0) { unique.push(e) } else if (e.important) { unique.push(e) } })
about 4 years ago · Juan Pablo Isaza Relatório

0

 let arr = []; arr.push( { module_id: 41, name: 'first', }, { module_id: 41, name: 'second', important: true, }, { module_id: 43, name: 'third', } ); const result = arr.reduce( (acc, curr) => acc.find((v) => v.module_id === curr.module_id) ? acc : [...acc, curr], [] ); console.log(result);

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