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

155
Visualizações
Eliminación de duplicados de 2 arreglos

Tengo 2 matrices que estoy tratando de comparar y obtener los valores únicos de:

 arr1 = [ 'Material', 'Style', 'Size', 'add another item', 'THIS IS A TEST OPTION', 'Title', 'Color', 'dfgdfs', 'teststststst', 'THIS IS A NEW OPTION' ] arr2 = [ { option: 'Title', product: [ [Object] ] }, { option: 'Style', product: [ [Object] ] }, { option: 'Material', product: [ [Object] ] }, { option: 'Size', product: [ [Object], [Object] ] }, { option: 'Color', product: [ [Object], [Object] ] }, { option: 'THIS IS A NEW OPTION', product: [ [Object] ] }, { option: 'THIS IS A TEST OPTION', product: [ [Object] ] }, { option: 'add another item', product: [ [Object] ] } ]

Rendimiento esperado:

 ['dfgdfs','teststststst']

No tengo ningún problema en extraer valores únicos cuando las matrices tienen 1 nivel de profundidad. Sin embargo, tengo problemas con arr2 como una matriz de objetos.

He intentado:

 arr1 = arr1.filter(val => !arr2.includes(val));

Lo que obviamente no funciona porque arr2 es una matriz de objetos.

También he intentado:

 arr1.filter((val, index) => { if (arr2[index]) { !arr2[index].option.includes(val); } });

Tanto como:

 arr1.filter((val, index) => { allUniqueOptions.forEach((option) => { !option.option.includes(val); }); });

Esto parece que debería ser tan simple, pero he estado devanándome la cabeza durante horas. ¿Alguna idea de lo que estoy haciendo mal?

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

0

Sus funciones de filtro deben devolver verdadero si se va a incluir el elemento y falso si no. Tenga en cuenta que sus dos últimos ejemplos no devuelven nada.

La lógica que utilicé en la función de filtro es: ¿aparece el elemento actual como una propiedad de "opción" en arr2? si sí devuelve falso, si no devuelve verdadero.

 arr1 = [ 'Material', 'Style', 'Size', 'add another item', 'THIS IS A TEST OPTION', 'Title', 'Color', 'dfgdfs', 'teststststst', 'THIS IS A NEW OPTION' ] arr2 = [ { option: 'Title', product: {}}, { option: 'Style', product: {} }, { option: 'Material', product: {} }, { option: 'Size', product: {} }, { option: 'Color', product: {} }, { option: 'THIS IS A NEW OPTION', product: {} }, { option: 'THIS IS A TEST OPTION', product: {} }, { option: 'add another item', product: {} } ] const uniques = arr1.filter(item => !arr2.find(el => el.option === item)); console.log(uniques);

about 4 years ago · Juan Pablo Isaza Relatório

0

Necesita filter el arr1 y verificar con some método en cada elemento de la matriz si no existen iguales en las opciones de arr2.

 const arr1 = [ 'Material', 'Style', 'Size', 'add another item', 'THIS IS A TEST OPTION', 'Title', 'Color', 'dfgdfs', 'teststststst', 'THIS IS A NEW OPTION' ] const arr2 = [ { option: 'Title', product: [ [ {} ] ] }, { option: 'Style', product: [ [ {} ] ] }, { option: 'Material', product: [ [ {} ] ] }, { option: 'Size', product: [ [ {} ], [ {} ] ] }, { option: 'Color', product: [ [ {} ], [ {} ] ] }, { option: 'THIS IS A NEW OPTION', product: [ [ {} ] ] }, { option: 'THIS IS A TEST OPTION', product: [ [ {} ] ] }, { option: 'add another item', product: [ [ {} ] ] } ] const result = arr1.filter(i => !arr2.some(o => i === o.option)) console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Para agregar a las respuestas anteriores.

Otra razón por la que sus filtros no funcionaron es porque

arr2[índice] saldrá del rango.

arr1 tenía más índices que arr2

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