Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

244
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda