Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Virtual assistant