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

121
Vistas
Combinar matrices con solo elementos en ambos (eficientemente)

Tengo algo de código de trabajo, aunque parece que debería ser mucho más eficiente. Siento que hay demasiados filtros trabajando con los mismos conjuntos de datos. ¿Existe una forma más limpia o más eficiente de fusionar 2 matrices sin duplicar?

 const x = [1,3,7,4,9]; const y = [2,3,9,13,4]; const yFilteredByX = y.filter(element => x.includes(element)); const xFilteredByY = x.filter(element => y.includes(element)); const unique = (value, index, self) => { return self.indexOf(value) === index; }; const newArr = yFilteredByX.concat(xFilteredByY); const uniqueArr = newArr.filter(unique); console.log(uniqueArr);

Actualmente genera [3,9,4] con éxito.

Hice un violín rápido

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

  • Crear un Set para cada matriz
  • Iterar sobre los elementos del primero usando Array#filter y devolver solo los del segundo conjunto

 const _getCommonElements = (arr1 = [], arr2 = []) => { const set1 = new Set(arr1), set2 = new Set(arr2); return [...set1].filter(e => set2.has(e)); } console.log( _getCommonElements([1,3,7,4,9], [2,3,9,13,4]) );

about 4 years ago · Juan Pablo Isaza Denunciar

0

Cree un conjunto a partir de uno y luego filtre el otro comprobando si el conjunto tiene elementos.

 const x = [1, 3, 7, 4, 9]; const y = [2, 3, 9, 13, 4]; const uniqueInX = new Set(x); const uniqueInBoth = y.filter(e => uniqueInX.has(e)); console.log(uniqueInBoth);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Parece que tiene la intención de calcular la intersección de dos conjuntos, por lo que se puede usar la operación de función correspondiente de los documentos del desarrollador de mozilla , por ejemplo

 const x = [1, 3, 7, 4, 9]; const y = [2, 3, 9, 13, 4]; function intersection(setA, setB) { let _intersection = new Set() for (let elem of setB) { if (setA.has(elem)) { _intersection.add(elem) } } return _intersection } const setX = new Set(x); const setY = new Set(y); const commonSet = intersection(setX, setY); console.log(...commonSet); // [3, 9, 4]

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