最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript比較兩個對象是否相等的方法

 更新時間:2015年02月06日 09:39:00   作者:kooky798  
這篇文章主要介紹了JavaScript比較兩個對象是否相等的方法,通過對js對象進行各方面的比較來判斷兩個對象是否相等,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了JavaScript比較兩個對象是否相等的方法。分享給大家供大家參考。具體如下:

在Python中可以通過cmp()內建函數來比較兩個對象所包涵的數據是否相等(數組、序列、字典)。但是在javascript語言中并沒有相關的實現(xiàn)。本js代碼通過對js對象進行各方面的比較來判斷兩個對象是否相等

cmp = function( x, y ) { 
// If both x and y are null or undefined and exactly the same 
if ( x === y ) { 
 return true; 
} 

// If they are not strictly equal, they both need to be Objects 
if ( ! ( x instanceof Object ) || ! ( y instanceof Object ) ) { 
 return false; 
} 

//They must have the exact same prototype chain,the closest we can do is
//test the constructor. 
if ( x.constructor !== y.constructor ) { 
 return false; 
} 
 
for ( var p in x ) { 
 //Inherited properties were tested using x.constructor === y.constructor
 if ( x.hasOwnProperty( p ) ) { 
 // Allows comparing x[ p ] and y[ p ] when set to undefined 
 if ( ! y.hasOwnProperty( p ) ) { 
  return false; 
 } 

 // If they have the same strict value or identity then they are equal 
 if ( x[ p ] === y[ p ] ) { 
  continue; 
 } 

 // Numbers, Strings, Functions, Booleans must be strictly equal 
 if ( typeof( x[ p ] ) !== "object" ) { 
  return false; 
 } 

 // Objects and Arrays must be tested recursively 
 if ( ! Object.equals( x[ p ], y[ p ] ) ) { 
  return false; 
 } 
 } 
} 

for ( p in y ) { 
 // allows x[ p ] to be set to undefined 
 if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) { 
 return false; 
 } 
} 
return true; 
};

使用:

objA={ 
 a:'123', 
 b:'456' 
}; 
objB={ 
 a:'123', 
 b:'000' 
}; 
var isEqual= cmp(objA, objB); 
 console.log(isEqual);  // false 不相同

希望本文所述對大家的javascript程序設計有所幫助。

相關文章

最新評論

额敏县| 成都市| 宾川县| 三明市| 富源县| 墨脱县| 泸西县| 东光县| 阿拉尔市| 阿拉善盟| 安吉县| 凤城市| 北京市| 青铜峡市| 呼伦贝尔市| 玉田县| 大兴区| 林周县| 上蔡县| 安义县| 翁牛特旗| 江都市| 尉犁县| 鲁甸县| 黄山市| 洮南市| 广南县| 怀远县| 古蔺县| 保定市| 平阴县| 兴文县| 神木县| 惠安县| 鄱阳县| 绿春县| 丰镇市| 南陵县| 兴国县| 金寨县| 大埔县|