この記事では、2つのオブジェクトが等しいかどうかを比較するJavaScriptの方法について説明します。参照のためにそれを共有してください。詳細は次のとおりです。
Pythonでは、CMP()内蔵機能を使用して、2つのオブジェクトに含まれるデータが等しいかどうかを比較できます(配列、シーケンス、辞書)。ただし、JavaScript言語に関連する実装はありません。このJSコードは、JSオブジェクトのさまざまな側面を比較することにより、2つのオブジェクトが等しいかどうかを判断します。
cmp = function(x、y){// xとyの両方がnullまたは未定義であり、まったく同じif(x === y){return true; } //それらが厳密に等しくない場合、それらは両方ともオブジェクトである必要があります} //彼らはまったく同じプロトタイプチェーンを持っている必要があり、私たちができる最も近いのは//コンストラクターをテストすることです。 if(x.constructor!== y.constructor){return false; } for(var p in x){//継承されたプロパティは、x.constructor === y.constructor if(x.hasownproperty(p)){// x [p]とy [p]を未定(!y.hasownproperty(p))に設定するとx [p]とy [p]を比較できます。 } //同じ厳格な値またはアイデンティティを持っている場合、(x [p] === y [p]){continue; } //数字、文字列、関数、ブールリアンは、(typeof(x [p])!== "object"){return false; } //オブジェクトと配列は、(!object.equals(x [p]、y [p])){return false; }}} for(p in y){// x [p]を未定義に設定することを許可します(y.hasownproperty(p)&&!x.hasownproperty(p)){return false; }} trueを返します。 };使用:
obja = {a: '123'、b: '456'}; objb = {a: '123'、b: '000'}; var isequal = cmp(obja、objb); console.log(isequal); // falseが違うこの記事がみんなのJavaScriptプログラミングに役立つことを願っています。