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

197
Visualizações
¿Cómo puedo verificar si la matriz de objetos tiene valores de propiedad duplicados?

Necesito ayuda para iterar a través de la matriz, sigo atascado o reinventando la rueda.

 values = [ { name: 'someName1' }, { name: 'someName2' }, { name: 'someName1' }, { name: 'someName1' } ]

¿Cómo podría verificar si hay dos (o más) valores del mismo nombre en la matriz? No necesito un contador, solo establezco alguna variable si los valores de la matriz no son únicos. Tenga en cuenta que la longitud de la matriz es dinámica, también los valores de la matriz.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Utilice array.prototype.map y array.prototype.some :

 var values = [ { name: 'someName1' }, { name: 'someName2' }, { name: 'someName4' }, { name: 'someName2' } ]; var valueArr = values.map(function(item){ return item.name }); var isDuplicate = valueArr.some(function(item, idx){ return valueArr.indexOf(item) != idx }); console.log(isDuplicate);

over 4 years ago · Santiago Trujillo Relatório

0

Versión ECMA Script 6

Si se encuentra en un entorno que admite Set de ECMA Script 6, entonces puede usar Array.prototype.some y un objeto Set , como este

 let seen = new Set(); var hasDuplicates = values.some(function(currentObject) { return seen.size === seen.add(currentObject.name).size; });

Aquí, insertamos el name de todos y cada uno de los objetos en el Set y verificamos si el size antes y después de agregar es el mismo. Esto funciona porque Set.size devuelve un número basado en datos únicos (set solo agrega entradas si los datos son únicos). Si/cuando tiene nombres duplicados, el tamaño no aumentará (porque los datos no serán únicos), lo que significa que ya habríamos visto el nombre actual y devolverá verdadero.


Versión ECMA Script 5

Si no tiene soporte para Set , entonces puede usar un objeto JavaScript normal, como este

 var seen = {}; var hasDuplicates = values.some(function(currentObject) { if (seen.hasOwnProperty(currentObject.name)) { // Current name is already seen return true; } // Current name is being seen for the first time return (seen[currentObject.name] = false); });

Lo mismo se puede escribir sucintamente, así

 var seen = {}; var hasDuplicates = values.some(function (currentObject) { return seen.hasOwnProperty(currentObject.name) || (seen[currentObject.name] = false); });

Nota: En ambos casos, usamos Array.prototype.some porque provocará un cortocircuito. En el momento en que obtenga un valor verdadero de la función, devolverá true inmediatamente, no procesará el resto de los elementos.

over 4 years ago · Santiago Trujillo Relatório

0

En TS y ES6, puede crear un nuevo conjunto con la propiedad de ser único y comparar su tamaño con la matriz original.

 const values = [ { name: 'someName1' }, { name: 'someName2' }, { name: 'someName3' }, { name: 'someName1' } ] const uniqueValues = new Set(values.map(v => v.name)); if (uniqueValues.size < values.length) { console.log('duplicates found') }

over 4 years ago · Santiago Trujillo 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