freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../diff-two-arrays/index.md

6.8 KiB

title localeTitle
Diff Two Arrays Diferencia dos matrices

:triangular_flag_on_post: Recuerda usar Read-Search-Ask si te atascas. Tratar de emparejar el programa :busts_in_silhouette: y escribe tu propio código :pencil:

:checkered_flag: Explicación del problema:

Verifique dos matrices y devuelva una nueva matriz que contenga solo los elementos que no estén en ninguna de las matrices originales.

Enlaces relevantes

:speech_balloon: Sugerencia: 1

Combine la lista para facilitar la comparación de funciones.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 2

Utilice el filtro para obtener la nueva matriz, tendrá que crear una función de devolución de llamada.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 3

La mejor manera de realizar la función de devolución de llamada es verificar si el número de la nueva matriz combinada no se encuentra en ambas matrices originales y devolverlo.

intenta resolver el problema ahora

¡Alerta de spoiler!

señal de advertencia

¡Solución por delante!

:beginner: Solución de código básico (Solución imperativa):

    function diffArray(arr1, arr2) { 
      var newArr = []; 
 
      function onlyInFirst(first, second) { 
      // Looping through an array to find elements that don't exist in another array 
        for (var i=0;i<first.length;i++) { 
          if (second.indexOf(first[i]) === -1) { 
            // Pushing the elements unique to first to newArr 
            newArr.push(first[i]); 
          } 
        } 
      } 
 
      onlyInFirst(arr1, arr2); 
      onlyInFirst(arr2, arr1); 
 
      return newArr; 
    } 
 
    diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]); 

:rocket: Ejecutar código

Explicación del código:

Lee los comentarios en el código.

Enlaces relevantes

:sunflower: Solución de código intermedio (Solución declarativa):

    function diffArray(arr1, arr2) { 
      return arr1 
        .concat(arr2) 
        .filter( 
            item => !arr1.includes(item) || !arr2.includes(item) 
        ) 
    } 
 
    diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]); 

:rocket: Ejecutar código

Explicación del código:

Explica la solución aquí y agrega cualquier enlace relevante.

Enlaces relevantes

:rotating_light: Solución de código avanzada (solución declarativa):

function diffArray(arr1, arr2) { 
    return arr1 
      .filter(el => !arr2.includes(el)) 
      .concat( 
        arr2.filter(el => !arr1.includes(el)) 
      ) 
 } 
 
 diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]); 

:rocket: Ejecutar código

Explicación del código:

Explica la solución aquí y agrega cualquier enlace relevante.

:rotating_light: Solución alternativa de código avanzado (solución declarativa):

function diffArray(arr1, arr2) { 
  return [ 
    ...diff(arr1, arr2), 
    ...diff(arr2, arr1) 
  ] 
 
  function diff(a, b) { 
    return a.filter(item => b.indexOf(item) === -1); 
  } 
 } 

Enlaces relevantes

:clipboard: NOTAS PARA LAS CONTRIBUCIONES:

  • :warning: NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
  • Agregue una explicación de su solución.
  • Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada . :traffic_light:
  • Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( :warning: NO elimine ningún nombre de usuario existente )

Ver :point_right: Wiki Challenge Solution Template para referencia.