JavaScript比较两个对象是否相等的方法
本文实例讲述了JavaScript比较两个对象是否相等的方法。分享给大家供大家参考。具体如下:
在Python中可以通过cmp()内建函数来比较两个对象所包涵的数据是否相等(数组、序列、字典)。但是在javascript语言中并没有相关的实现。本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程序设计有所帮助。
相关推荐
-
javascript 时间比较实现代码
web开发中有时需要对输入框中的时间(主要是开始时间和结束时间)进行比较,网上搜索了一番,发现有不少是无效的,以下方法经小弟检验确实有效,特此共享.(请关注红色部分) function ValidtorTime(){ var d1 = new Date(document.getElementById('txbFromDate').value.replace(/\-/g, "\/")); var d2 = new Date(document.getEle
-
javascript 两个字符串比较函数
Untitled function diff(){ var s = f.s1.value; var s1 = f.s2.value; document.write("s: " + s + ""); document.write("s1: " + s1 + ""); function sort(s, a){ for(i=0; i list1[n]){ l[j] = list1[n]; if (n [Ctrl+A 全选 注:如需引
-
Javascript的比较汇总
在Javascript应用过程中会遇到各式各样的比较,今天给大家整理了三种情况,一起来学习下. 1.两个对象的比较 Javascript的比较中参杂了一些比较奇怪的特性,我们来看一些比较简单的比较. // 原始值的比较 > var a = 12 undefined > var b = 12 undefined > a == b true > a === b true // 对象的比较 > var c = [] undefined > var d = [] undefin
-
使用JS判断是否数字和小数点组合的数字的两中方法比较(isNaN和逐判断)
下面例举如下:如果大家有更好的方法的话望大家提出更好的方法. 一:isNaN方法: isNaN()的意思是非数字,里面传入数字的话就返回false,传入的不是数字的话就返回true [空的话也是返回true,一个点也是返回true,点个数字组合返回的是false,说明是数字] 复制代码 代码如下: <script language="JavaScript"> function testNan(){ if(isNaN('xxx')){ alert('true'); }else
-
JS比较两个时间大小的简单示例代码
如下所示: 复制代码 代码如下: if (new Date(strSD.replace(/\-/g, '\/')) > new Date(strED.replace(/\-/g, '\/'))) { //开始时间大于了结束时间 alert("时间选择有误!开始日期必须小于或者等于结束时期!"); return false;}
-
JavaScript 比较时间大小的代码
例如: Date.parse( "2000-01-01" ) IE and Mozilla浏览器: "NaN".那么我们一般在Web页面上显示的时 间 就不能直接转换.需要做处理. 可以直接转换的格式"01/01/2000","2000/01/01" 复制代码 代码如下: //定义正则表达式,因为jS对只能替换一个 //转换为 "2000/01/01" var regS = new RegExp("
-
JS 日期比较大小的简单实例
1,比较日期大小的js代码 复制代码 代码如下: <script>var beginDate=$("#beginDate").val(); var endDate=$("#endDate").val(); var d1 = new Date(beginDate.replace(/\-/g, "\/")); var d2 = new Date(endDate.replace(/\-/g, "\/"));
-
js对象的比较
复制代码 代码如下: Object.prototype.equals = function(obj){ if(this == obj) return true; if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object") return false; var length = 0; var length1=0; for(var ele in this) { length++; } for(var ele
-
JavaScript比较两个对象是否相等的方法
本文实例讲述了JavaScript比较两个对象是否相等的方法.分享给大家供大家参考.具体如下: 在Python中可以通过cmp()内建函数来比较两个对象所包涵的数据是否相等(数组.序列.字典).但是在javascript语言中并没有相关的实现.本js代码通过对js对象进行各方面的比较来判断两个对象是否相等 cmp = function( x, y ) { // If both x and y are null or undefined and exactly the same if ( x ==
-
基于JavaScript判断两个对象内容是否相等
这篇文章主要介绍了基于JavaScript判断两个对象内容是否相等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ES6中有一个方法判断两个对象是否相等,这个方法判断是两个对象引用地址是否一致 let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log(Object.is(obj1,
-
js中比较两个对象是否相同的方法示例
本文实例讲述了js中比较两个对象是否相同的方法.分享给大家供大家参考,具体如下: js中,很轻易就可以比较2个普通字符串/数字是否相同,但是,如何比较2个对象是否相同呢? 在此我便给出较为简单的方法,如下: //比较2个对象是否相同 function isObjEqual(o1,o2){ var props1 = Object.getOwnPropertyNames(o1); var props2 = Object.getOwnPropertyNames(o2); if (props1.leng
-
JavaScript使用function定义对象并调用的方法
本文实例讲述了JavaScript使用function定义对象并调用的方法.分享给大家供大家参考.具体分析如下: JS中你可以通过函数的方式定义对象,下面的JS代码定义了一个movie的函数对象,然后通过new的方法声明对象,调用起来也非常简单. <script type="text/javascript"> function movie(title, director) { this.title = title; this.director = director; } v
-
javascript比较两个日期相差天数的方法
本文实例讲述了javascript比较两个日期相差天数的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content
-
C#使用Equals()方法比较两个对象是否相等的方法
本文实例讲述了C#使用Equals()方法比较两个对象是否相等的方法.分享给大家供大家参考.具体如下: int price = 100; int amount = 1000 if (price.Equals(amount)) { Console.WriteLine("Price is equal to amount"); } else { Console.WriteLine("Price is not equal to amount"); } 希望本文所述对大家的C
-
JavaScript isArray()函数判断对象类型的种种方法
1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 typeof 的能力有限,其对于Date.RegExp类型返回的都是"object".如: 复制代码 代码如下: typ
-
JavaScript简单遍历DOM对象所有属性的实现方法
本文实例讲述了JavaScript遍历DOM对象所有属性的实现方法.分享给大家供大家参考,具体如下: DOM对象的HTML: 复制代码 代码如下: <button id="btnToggleState" onclick="toggleStateManagement()">Disable State Cookie</button> 1.遍历DOM对象所有具备的属性(全属性.不管在HTML tag中是否设置都会遍历) var obj=docume
-
JavaScript中创建类/对象的几种方法总结
在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表.字典.健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象. 一.由一对大括号括起来 复制代码 代码如下: var emptyObj = {
-
JavaScript判断变量是对象还是数组的方法
typeof都返回object 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 复制代码 代码如下: var o = { 'name':'lee' }; var a = ['reg','blue']; document.write( ' o typeof is ' + typeof o); document.write( ' <br />'); document.wr
随机推荐
- C语言中利用封装好的函数实现英文字母的大小写转换
- JavaScript中的object转换成number或string规则介绍
- PHP中静态变量的使用方法实例分析
- NodeJs下的测试框架Mocha的简单介绍
- asp.net(c#) MS AJAX的安装
- 浅谈jquery之on()绑定事件和off()解除绑定事件
- Ruby中关于hash的基本使用方法
- VBS教程:属性-Files 属性
- 批处理delims=和tokens=星号 的使用差别
- jQuery EasyUI API 中文文档 - DateBox日期框
- 基于jquery的一个图片hover的插件
- asp创建表,复制表 字段类型附录
- Linux下大量SYN_SENT连接问题的解决方法
- 深入解析C语言中常数的数据类型
- SpringMVC基于注解的Controller详解
- 使用Python的Tornado框架实现一个Web端图书展示页面
- 基于javascript实现单选及多选的向右和向左移动实例
- Android的ListView多选删除操作实现代码
- Android SQLite3多线程操作问题研究总结
- List<>中Find的用法小结