Cómo comparar objetos en JavaScript

Cómo comparar objetos en JavaScript
En JavaScript, un objeto es un tipo de datos o entidad de datos no probitivos que almacena numerosas colecciones de datos con propiedades. Comparar números o textos es bastante simple en JavaScript, pero es más difícil comparar dos objetos. Dado que JavaScript puede comparar fácilmente dos cadenas, por lo tanto, convertiremos los objetos en cadenas y luego realizaremos operaciones de comparación.

Este tutorial demostrará los métodos para comparar objetos en JavaScript.

Cómo comparar objetos en JavaScript?

Para comparar objetos en JavaScript, utilice el "Json.Stringify ()" método. Usando el JSON.método stringify (), el valor/objeto se convierte en una cadena JSON. Para determinar si los dos objetos son realmente equivalentes, compare las dos salidas después de usar JSON.Stringify () para convertir los dos objetos en cadenas.

Sintaxis
Siga la sintaxis mencionada a continuación para comparar objetos usando JSON.Método Stringify ():

Json.Stringify (valor)

El json.El método Stringify () toma solo un parámetro, que es "valor", Que es el objeto JavaScript que se convertirá en una cadena JSON.

Ejemplo 1: Compare objetos con las mismas propiedades
Primero, cree dos objetos llamados "Info" y "información"Con las mismas propiedades"nombre" y "edad":

Var info =
Nombre: "Stephen",
Edad: 25

información var =
Nombre: "Stephen",
Edad: 25

Luego, compare estos dos objetos usando JSON.método stringify () con un operador de igualdad estricto. El json.El método Stringify () convierte los objetos en cadenas y luego compara las cadenas resultantes utilizando el operador de igualdad estricto que se comparará tanto en su tipo como en el valor:

consola.registro (JSON.Stringify (info) === JSON.Stringify (información));

La salida muestra "verdadero"Eso indicará que ambos objetos son iguales:

Ejemplo 2: Compare objetos con las mismas propiedades pero diferentes lugares
En este ejemplo, primero, agregue una propiedad "contacto"En objeto" información ":

información var =
Nombre: "Stephen",
Contacto: "2345667",
Edad: 25

Luego, compare los objetos "información" y "información"Usando un operador de igualdad estricto:

consola.registro (JSON.Stringify (info) === JSON.Stringify (información));

La salida muestra "FALSO"Porque la colocación de las propiedades del objeto no es la misma:

Aquí, surge la pregunta, ¿por qué no usamos un operador de igualdad para comparar objetos en lugar de JSON?.método stringify ()? Sigue la sección a continuación.

¿Por qué no se comparan los objetos usando el operador de igualdad??

JavaScript ofrece dos métodos de comparación, uno se compara con valores y el otro es por referencia. Los tipos primitivos (cadena, números) se comparan por valores.

Como sabemos, el operador de igualdad suelta "=="Compara los tipos de datos por valores, mientras que el operador de igualdad estricto"==="Compara los tipos de datos primitivos tanto por su tipo como por el valor. Objetos que usan operadores de comparación "==" y "==="No se puede comparar porque JavaScript compara objetos basados ​​en sus direcciones, también conocidos como Compare por referencia.

Verifiquemos que los objetos no se comparan con los operadores de igualdad (== y ===).

Ejemplo 1: Uso del operador de igualdad suelta (==)
Aquí, compararemos ambos objetos "información" y "información"Eso se crea en el ejemplo anterior, usando el operador de igualdad suelta (==):

consola.Log (información == Información)

La salida muestra "FALSO"Porque los objetos se comparan por referencia:

Ejemplo 2: Uso del operador de igualdad estricto (===)
Ahora, compararemos ambos objetos utilizando un operador de igualdad estricto:

consola.Log (información === Información)

Producción

Como puede ver que los operadores de igualdad no comparan los objetos, por lo que JavaScript permite comparar objetos convirtiéndolos en cadenas utilizando el "Json.Stringify ()" método.

Hemos proporcionado la solución más simple para comparar objetos en JavaScript.

Conclusión

Para comparar objetos en JavaScript, puede utilizar el "Json.Stringify ()"Método que primero convertirá un valor/objeto JavaScript en una cadena JSON, y luego puede comparar las cadenas devueltas con la ayuda del Operador de Igualdad estricto. Como saben, JavaScript puede comparar fácilmente dos cadenas, pero es difícil comparar dos objetos. Para determinar si los dos objetos son realmente equivalentes, compare las dos salidas después de usar JSON.Stringify () para convertir los dos objetos en cadenas. En este manual, demostramos los métodos para comparar objetos en JavaScript.