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

239
Views
al menos uno de los valores en la matriz de "datos" obj array1 coincide con la matriz de "datos" en el objeto array2

al menos uno de los valores en la matriz "datos" obj matriz1 coincide con la matriz "datos" en el objeto matriz2

 > array1 array1 = [ { id: '1', name: 'ron', data: ['p1'] }, { id: '2', name: 'lon', data: ['p2'] }, { id: '3', name: 'voon', data: ['p4'] } ]; > array2 array2 = [ { id: '1', name: 'fgr', data:['p1','p2','p3'] }, { id: '2', name: 'gone', data:['p1','p2','p3'] } ]

salida: { id: '1', nombre: 'ron', datos: ['p1'] }, { id: '2', nombre: 'lon', datos: ['p2'] }

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Con el siguiente supuesto:

  • array1 tiene objetos, cada uno de los cuales siempre tiene data prop, que es una matriz
  • array2 también tiene objetos y estos objetos siempre tendrán data utilería que también son una matriz
  • el objetivo buscado es generar un arreglo con objetos de array1 cuyos data tengan al menos un elemento común con alguno de los data de los objetos de array2 .

esta solución puede funcionar:

 const findNeedleInHaystack = (needle = array1, haystack = array2) => ( needle.reduce((acc, itm) => ( haystack .map(x => x.data) .flat() .some(x => itm.data.includes(x)) ? [...acc, itm] : [...acc] ), []) );

Explicación

  • iterar sobre la matriz de needle (es decir, matriz1) usando .reduce
  • use .map en la matriz haystack (es decir, matriz2) para separar los data de cada objeto
  • use .flat() para transformar la matriz resultante de 2 dimensiones en 1 dimensión
  • use .some para ver si algún elemento en la matriz unidimensional también está presente en la matriz de data de itm
  • si lo encuentra, concatene itm con el resultado (usando ... operador de propagación en acc - el agregador/acumulador)
  • si no lo encuentra, omita la concatenación de itm .

Fragmento de código

 const array1 = [ { id: '1', name: 'ron', data: ['p1'] }, { id: '2', name: 'lon', data: ['p2'] }, { id: '3', name: 'voon', data: ['p4'] } ]; const array2 = [ { id: '1', name: 'fgr', data:['p1','p2','p3'] }, { id: '2', name: 'gone', data:['p1','p2','p3'] } ]; const findNeedleInHaystack = (needle = array1, haystack = array2) => ( needle.reduce((acc, itm) => ( haystack.map(x => x.data).flat().some(x => itm.data.includes(x)) ? [...acc, itm] : [...acc] ), []) ); console.log(findNeedleInHaystack());

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
Show me some job opportunities
There's an error!