ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で 2 つのオブジェクトが等しいかどうかを比較する方法
この記事の内容は、JavaScript で 2 つのオブジェクトが等しいかどうかを比較する方法に関するものです。必要な方は参考にしていただければ幸いです。
これは、面接中に面接官から尋ねられた質問です
このインタビューの質問では、
Equal: オブジェクトの属性の数を指します Equal
obj が 2 つある
let obj1 = { name:'李德华', age:18, price:NaN } let obj2 = { name:'张德华', age:18, price:NaN }
解決策が思いつく
function compare(obj1,obj2){ if(Object.keys(obj1).length != Object.keys(obj2).length){ return false }else{ for(key in obj1){ if(obj2.hasOwnProperty(key)){ if( !Object.is(obj1[key],obj2[key])){ return false; } }else{ return false } } return true } }
obj には長さが無いので、 Object.keys()
を介してそれを配列に変換して、オブジェクト内のプロパティが別の obj に存在するかどうかの 2 番目のステップに進むことしかできません。ここで Object.hasOwnProperty() は、オブジェクト内のプロパティを比較するためだけに使用されます (obj が親のプロパティを継承しないようにするため)
は、プロパティ値を比較する 2 番目のステップの基礎を保持します。 。 比較。 ES6 では Object.is() を使用して、NaN がそれ自身と等しくないという問題を回避します。
または Underscore.js で _.isEqual
を使用します以上がJavaScript で 2 つのオブジェクトが等しいかどうかを比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。