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()一章節。
相關文章
- js 判斷兩個變數是否相等JS變數
- 如何判斷JavaScript中的兩變數是否相等?JavaScript變數
- JavaScript 中,如何判斷兩個物件是否相等?JavaScript物件
- js判斷兩個物件是否相等JS物件
- Javascript 判斷物件是否相等JavaScript物件
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- javascript判斷一個變數是否存在JavaScript變數
- javascript判斷一個變數是否是數字JavaScript變數
- javascript如何判斷一個變數是否宣告JavaScript變數
- JavaScript 專題之如何判斷兩個物件相等JavaScript物件
- javascript如何判斷一個變數是否是整數JavaScript變數
- javascript如何判斷一個變數是否是undefinedJavaScript變數Undefined
- 【質數判斷】給定兩個數,判斷這兩個數是否互質?
- JavaScript 判斷變數是否是函式JavaScript變數函式
- js判斷一個變數是否為空JS變數
- javascript判斷變數是否是數值型別程式碼JavaScript變數型別
- 判斷物件是否相等的方法,==與 isEqual物件
- js如何判斷一個變數是否具有值JS變數
- js如何判斷一個變數是否是undefinedJS變數Undefined
- js如何判斷一個變數是否有值JS變數
- JavaScript判斷數字是否是質數JavaScript
- js如何判斷一個變數是否是一個數字JS變數
- 【3分鐘速覽】如何“嚴謹地”判斷兩個變數是否相同變數
- java 兩個列表的元素是否相等且各自元素數量相等Java
- js如何判斷一個變數值是否為undefinedJS變數Undefined
- js判斷一個變數是否為字串型別JS變數字串型別
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- php中判斷變數是否為空PHP變數
- js如何判斷一個變數是否宣告並賦值JS變數賦值
- LC49判斷二叉樹是否相等二叉樹
- javascript判斷變數是否是陣列型別程式碼例項JavaScript變數陣列型別
- Oracle PL/SQL判斷兩個欄位相等或不等問題OracleSQL
- 比較兩個陣列是否相等陣列
- shell比較兩個字串是否相等字串
- 使用SQL判斷一個數是否質數SQL
- nginx判斷路徑是否含有某個引數做判斷Nginx
- linux 中如何判斷變數是否為數值Linux變數
- <Python>判斷變數是否是DataFrame 或者 SeriesPython變數