¿Cómo comparar dos objetos de array de JavaScript usando jQuery/JavaScript?

Dados dos objetos de array/array de JavaScript y la tarea es comparar la igualdad de ambos objetos de array. 
Enfoque 1: 
 

  • Use el método jQuery not() para verificar cada elemento de la array1, si no está presente en la array2 o para cada elemento de la array2, si no está presente en la array1, entonces devuelve falso en ambos casos.
  • También verifique la longitud de ambas arrays.

Ejemplo: este ejemplo utiliza el método jQuery not() para comparar la igualdad de ambas arrays.
 

html

<!DOCTYPE HTML> 
<html> 
 
<head> 
    <title> 
        How to compare two JavaScript
        array objects using jQuery ?
    </title>
     
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head> 
 
<body style = "text-align:center;"> 
     
    <h1 style = "color:green;" > 
        GeeksForGeeks 
    </h1>
     
    <p id = "GFG_UP" style =
        "font-size: 15px; font-weight: bold;">
    </p>
 
     
    <button onclick = "GFG_Fun()">
        click here
    </button>
     
    <p id = "GFG_DOWN" style =
        "font-size: 24px; font-weight: bold; color: green;">
    </p>
 
     
    <script> 
        var up = document.getElementById('GFG_UP');
        var down = document.getElementById('GFG_DOWN');
        var arr1 = [1, 3, 5, 8];
        var arr2 = [1, 3, 5, 7];
     
        up.innerHTML = "Click on the button to check "
                + "equality of arrays.<br>Array1 - "
                + arr1 + "<br>Array2 - " + arr2;
     
        function GFG_Fun() {
            down.innerHTML =
                    $(arr1).not(arr2).length === 0 &&
                    $(arr2).not(arr1).length === 0;
        }
    </script> 
</body> 
 
</html>

Producción: 
 

  • Antes de hacer clic en el botón: 
     

  • Después de hacer clic en el botón: 
     

Enfoque 2: 
 

  • Primero, use la función sort() para ordenar ambas arrays en orden ascendente.
  • Luego comience a hacer coincidir el elemento uno por uno y si se encuentra alguna discrepancia, devuelve falso; de lo contrario, devuelve verdadero.

Ejemplo: Este ejemplo utiliza un enfoque como se discutió anteriormente. 
 

html

<!DOCTYPE HTML> 
<html> 
 
<head> 
    <title> 
        How to compare two JavaScript
        array objects using jQuery ?
    </title>
     
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head> 
 
<body style = "text-align:center;"> 
     
    <h1 style = "color:green;" > 
        GeeksForGeeks 
    </h1>
     
    <p id = "GFG_UP" style =
        "font-size: 15px; font-weight: bold;">
    </p>
 
     
    <button onclick = "GFG_Fun()">
        click here
    </button>
     
    <p id = "GFG_DOWN" style =
        "font-size: 24px; font-weight: bold; color: green;">
    </p>
 
     
    <script> 
        var up = document.getElementById('GFG_UP');
        var down = document.getElementById('GFG_DOWN');
        var arr1 = [1, 3, 7, 5];
        var arr2 = [1, 3, 5, 7];
         
        up.innerHTML = "Click on the button to check "
                + "equality of arrays.<br>Array1 - "
                + arr1 + "<br>Array2 - " + arr2;
         
        function compare(ar1, ar2) {
            ar1.sort();
            ar2.sort();
             
            if(ar1.length != ar2.length)
                return false;
             
            for(var i = 0; i < ar1.length; i++) {
                if (ar1[i] != ar2[i])
                    return false;
            }
            return true;
        }
        function GFG_Fun() {
            down.innerHTML = compare(arr1, arr2);
        }
    </script> 
</body> 
 
</html>

Producción: 
 

  • Antes de hacer clic en el botón: 
     

  • Después de hacer clic en el botón: 
     

Enfoque 3: 
 

  • Cree dos objetos de array y guárdelos en las variables arr1 y arr2.
  • Use la función JSON.stringify() para convertir el objeto en una string JSON.
  • Ahora compare ambas strings JSON usando el operador de comparación (==) para verificar que ambos objetos de la array sean iguales o no.

Nota: este método solo funciona cuando ambos objetos de la array se ordenan de la misma manera.
Ejemplo: 
 

html

<!DOCTYPE HTML> 
<html> 
 
<head> 
    <title> 
        How to compare two JavaScript
        array objects using jQuery ?
    </title>
     
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head> 
 
<body style = "text-align:center;"> 
     
    <h1 style = "color:green;" > 
        GeeksForGeeks 
    </h1>
     
    <h2>
        Click on the button to check
        equality of arrays
    </h2>
     
    <p id = "GFG_UP" style =
        "font-size: 15px; font-weight: bold;">
    </p>
 
     
    <button onclick = "GFG_Fun()">
        click here
    </button>
     
    <p id = "GFG_DOWN" style =
        "font-size: 24px; font-weight: bold; color: green;">
    </p>
 
     
    <script> 
        var up = document.getElementById('GFG_UP');
        var down = document.getElementById('GFG_DOWN');
         
        var arr1 = [
            {id: "1", name: "GeeksforGeeks"},
            {id: "2", name: "GFG"}
        ];
         
        var arr2 = [
            {id: "1", name: "GeeksforGeeks"},
            {id: "2", name: "GFG"}
        ];
         
        up.innerHTML = "<h3>Array1:</h3> "
                    + JSON.stringify(arr1)
                    + "<h3>Array2:</h3> "
                    + JSON.stringify(arr2);
         
        function compare(ar1, ar2) {
            if(JSON.stringify(arr1) == JSON.stringify(arr2)){
                return true;
            }
            else
                return false;
        }
        function GFG_Fun() {
            down.innerHTML = compare(arr1, arr2);
        }
    </script> 
</body> 
 
</html>

Producción: 
 

  • Antes de hacer clic en el botón: 
     

  • Después de hacer clic en el botón: 
     

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *