JavaScript判斷兩個變數是否相等
本章節介紹一下如何判斷兩個變數是否相等。
下面就分享一段程式碼例項,並詳細接介紹一下它的實現過程。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼Object.equals=function(x,y){ if(x===y){ return true; } if(!(x instanceof Object) || ! (y instanceof Object)){ return false; } if(x.constructor!==y.constructor){ return false; } for(var p in x){ if(x.hasOwnProperty(p)){ if(! y.hasOwnProperty(p)){ return false; } if(x[p]===y[p]){ continue; } if(typeof( x[ p ] ) !== "object"){ return false; } if(! Object.equals(x[p], y[p])){ return false; } } } for(p in y){ if (y.hasOwnProperty(p) && ! x.hasOwnProperty(p)){ return false; } } return true; }; obj={ webName:'螞蟻部落', url:'softwhy.com' }; antzone={ webName:'螞蟻部落', b:'163.com' }; console.log(Object.equals(obj,antzone));
上面的程式碼實現了判斷功能,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).Object.equals=function(x,y){},定義了一個函式用來實現比對功能,兩個引數分別是要比對的值。
(2).if(x===y){
return true;
}如果兩個值全等,那麼毫無因為就是相等的,返回值為true。
(3).if(!(x instanceof Object) || ! (y instanceof Object)){
return false;
},如果兩個值不是全等的,那麼必須是物件,如果不是物件那麼說明兩個值不可能相等,返回false。
(4).if(x.constructor!==y.constructor){
return false;
},如果兩個兩個物件的建構函式不同,那麼也返回false。
(5).for(var p in x){},遍歷物件的每一個成員。
(6).if(x.hasOwnProperty(p)){},判斷屬性是否是物件的自有屬性。
(7).if(! y.hasOwnProperty(p)){
return false;
},如果第二個物件沒有此值,那麼就返回false。
(8).if(x[p]===y[p]){
continue;
},如果兩個值全等,那麼非常OK,繼續進行下一次遍歷。
(9).if(typeof( x[ p ] ) !== "object"){
return false;
},如果兩個值不全等,但也不是物件,那麼就返回false。
(10).if(! Object.equals(x[p], y[p])){
return false;
} 如果兩個都是物件,那麼再遞迴呼叫此方法。
二.相關閱讀
(1).instanceof參閱JavaScript instanceof一章節。
(2).constructor參閱JavaScript constructor一章節。
(3).for in語句參閱JavaScript for in一章節。
(4).hasOwnProperty方參閱JavaScript hasOwnProperty()一章節。
相關文章
- 如何判斷JavaScript中的兩變數是否相等?JavaScript變數
- JavaScript 中,如何判斷兩個物件是否相等?JavaScript物件
- js判斷兩個物件是否相等JS物件
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- 【質數判斷】給定兩個數,判斷這兩個數是否互質?
- JavaScript 判斷變數是否是函式JavaScript變數函式
- JavaScript判斷數字是否是質數JavaScript
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- 【3分鐘速覽】如何“嚴謹地”判斷兩個變數是否相同變數
- java 兩個列表的元素是否相等且各自元素數量相等Java
- LC49判斷二叉樹是否相等二叉樹
- linux 中如何判斷變數是否為數值Linux變數
- <Python>判斷變數是否是DataFrame 或者 SeriesPython變數
- 比較兩個陣列是否相等陣列
- nginx判斷路徑是否含有某個引數做判斷Nginx
- JavaScript判斷字串是否為空JavaScript字串
- JavaScript 判斷是否是陣列JavaScript陣列
- JavaScript 判斷函式是否存在JavaScript函式
- abc250E 判斷字首構成的集合是否相等
- 為什麼判斷物件是否相等, 不建議用 equals ?物件
- matlab比較兩個矩陣是否相等Matlab矩陣
- python如何比較兩個字串是否相等Python字串
- 判斷一個數是否為質數(程式碼)
- python如何判斷一個數是否是整數Python
- Python判斷變數是否是整數的方法有哪些?Python變數
- JDK是如何判斷兩個物件是否相同的?判斷的流程是什麼?JDK物件
- python如何判斷字串相等Python字串
- javascript中如何判斷變數的型別?JavaScript變數型別
- 如何判斷 JavaScript 物件是否為空?JavaScript物件
- javascript 判斷括號是否配對。JavaScript
- javascript中如何判斷一個字串是否為JSON格式JavaScript字串JSON
- go 如何優雅的判斷變數是否為 nilGo變數
- 透過反射對比兩個物件是否相等反射物件
- 【數學問題】判斷一個數是否是素數
- javascript中對變數型別的判斷方法JavaScript變數型別
- JavaScript判斷變數型別的四種方法JavaScript變數型別
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- JavaScript判斷iframe是否載入完畢JavaScript