JS – Comparar dos Objetos en JavaScript

Publicado por Iván Gajate el 29 de noviembre de 2013 en JavaScript

Los Object en JavaScript se comparan por referencia, es decir, que aunque sean dos objetos idénticos, cada uno apunta a un espacio de memoria diferente. Así:

var a = {nombre:'Ivan'};
var b = {nombre:'Ivan'};
 
alert(a == b); // false

Una forma rápida y sencilla de comparar dos objetos es convertirlos a una cadena de texto con JSON.stringify

var a = {nombre:'Ivan'};
var b = {nombre:'Ivan'};
 
// Compare two objects
function compareObjects(obj1, obj2) {
	return JSON.stringify(obj1) === JSON.stringify(obj2);
}
 
alert( compareObjects(a, b) ); // true
Si tratamos de usarlo con un objeto jQuery nos dará un error porque tiene referencias circulares.

 

Un comentario para “JS – Comparar dos Objetos en JavaScript”

  1. También es interesantes esta otra forma para comparar objetos del DOM
    http://makandracards.com/makandra/13445-compare-two-jquery-objects-for-equality