Este artigo descreve o método de JavaScript para comparar se dois objetos são iguais. Compartilhe para sua referência. Os detalhes são os seguintes:
No Python, você pode usar a função interna CMP () para comparar se os dados contidos em dois objetos são iguais (matrizes, sequências, dicionários). No entanto, não há implementação relevante no idioma JavaScript. Esse código JS julga se os dois objetos são iguais comparando vários aspectos do objeto JS.
cmp = função (x, y) {// se x e y forem nulos ou indefinidos e exatamente o mesmo se (x === y) {return true; } // Se eles não forem estritamente iguais, ambos precisam ser objetos se (! (X instanceof objeto) ||! (Y instanceof object)) {return false; } // Eles devem ter exatamente a mesma cadeia de protótipo, o mais próximo que podemos fazer é // testar o construtor. if (x.Constructor! == Y.Constructor) {return false; } para (var p em x) {// As propriedades herdadas foram testadas usando x.constructor === y.Constructor if (x.HasownProperty (p)) {// permite comparar x [p] e y [p] } // Se eles tiverem o mesmo valor ou identidade estritos, serão iguais se (x [p] === y [p]) {continue; } // números, strings, funções e booleanos devem ser estritamente iguais se (typeof (x [p])! == "objeto") {return false; } // Objetos e matrizes devem ser testados recursivamente se (! Object.Equals (x [p], y [p])) {return false; }}} para (p em y) {// permite que x [p] sejam definidos como indefinidos se (y.HasownProperty (P) &&! X.HasownProperty (P)) {return false; }} retornar true; };usar:
obja = {a: '123', b: '456'}; objb = {a: '123', b: '000'}; var isequal = cmp (obja, objb); console.log (isequal); // false diferenteEspero que este artigo seja útil para a programação JavaScript de todos.