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 in obj) {
length1++;
}
if(length!=length1)
return false;
if(obj.constructor==this.constructor){
for(var ele in this){
if(typeof(this[ele])=="object") {
if(!this[ele].equals(obj[ele]))
return false;
}
else if(typeof(this[ele])=="function"){
if(!this[ele].toString().equals(obj[ele].toString()))
return false;
}
else if(this[ele]!=obj[ele])
return false;
}
return true;
}
return false;
};
var p1 = {name:"jack",age:18};
var p2 = {name:"lucy",age:10};
var p3 = {name:"jack",age:18};
console.log(p1.equals(p2));//false
console.log(p1.equals(p3));//true
console.log(p1.equals({name:"jack",age:18}));//true
相关推荐
-
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 日期比较大小的简单实例
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, "\/"));
-
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比较两个时间大小的简单示例代码
如下所示: 复制代码 代码如下: if (new Date(strSD.replace(/\-/g, '\/')) > new Date(strED.replace(/\-/g, '\/'))) { //开始时间大于了结束时间 alert("时间选择有误!开始日期必须小于或者等于结束时期!"); return false;}
-
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 两个字符串比较函数
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 时间比较实现代码
web开发中有时需要对输入框中的时间(主要是开始时间和结束时间)进行比较,网上搜索了一番,发现有不少是无效的,以下方法经小弟检验确实有效,特此共享.(请关注红色部分) function ValidtorTime(){ var d1 = new Date(document.getElementById('txbFromDate').value.replace(/\-/g, "\/")); var d2 = new Date(document.getEle
-
JS对象与JSON格式数据相互转换
目前的项目数据交互几乎都用JQuery,所以处理流程是:前端页面数据->JS对象->jQuery提交->python处理,另外一种就是倒过来.python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的对象,这个中间转换数据格式通常就是JSON. 一.JS对象转换成为JSON 流程:读取前端页面数据,组装成为JS对象,并通过jQuery的$.post()方法传递
-
JS对象的深度克隆方法示例
本文实例讲述了JS对象的深度克隆方法.分享给大家供大家参考,具体如下: js中创建的对象指向内存,所以在开发过程中,往往修改了一个对象的属性,会影响另外一个对象. 尤其是在angular框架中,dom是由数据驱动的,在增删改查对象的操作中,对象属性的继承关系是很让人头痛的! 我之前遇到的问题就是,在编辑页面,操作了对象数据,影响到了展示数据的展现! 我整理了两种深度克隆对象的方法,供大家参考! 首先var 一个假数据 复制代码 代码如下: var schedule = {"status"
-
js对象的复制继承实例
本文实例讲述了js对象的复制继承.分享给大家供大家参考.具体如下: 复制代码 代码如下: <script type="text/javascript"> Object.prototype.extend = function(obj){ //在函数里,把obj属性复制到自身 for(var k in obj){ if(obj.hasOwnProperty(k)){ if(this[k] == undefined){ this[k] = obj[k];
-
javascript遍历json对象的key和任意js对象属性实例
使用 keys 方法获取该对象的属性和方法: function Pasta(grain, width, shape) { this.grain = grain; this.width = width; this.shape = shape; this.toString = function () { return (this.grain + ", " + this.width + ", " + this.shape); } } var spaghetti = new
-
JS对象与json字符串格式转换实例
本文实例讲述了JS对象与json字符串格式转换的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript"&g
-
JSON与js对象序列化实例详解
本文实例讲述了JSON与js对象序列化.分享给大家供大家参考,具体如下: JavaScript对象表示法(JavaScript Object Notation,简称JSON)是一种轻量级的数据交换格式,它基于js字面量表示法,是js的一个子集.虽然是一个js的子集但是他与语言无关,它可以用于在现在所有的编程语言编写的应用程序之间进行数据交换.是一种文本格式,比较容易读写. JSON是一个容纳"名/值"对的无序集合,名字可以是任意字符串,值可以使任意的JSON类型的值.大多数编程语言都有
-
js对象的构造和继承实现代码
复制代码 代码如下: <script> //定义js的user对象 function User(name,age){ this.name=name, this.age=age, this.getName=function(){ return this.name; }, this.getAge=function(){ return this.age; } } //实例化一个对象 var use=new User("aa",21); alert(use.name); alert
-
基于JS对象创建常用方式及原理分析
前言 俗话说"在js语言中,一切都对象",而且创建对象的方式也有很多种,所以今天我们做一下梳理 最简单的方式 JavaScript创建对象最简单的方式是:对象字面量形式或使用Object构造函数 对象字面量形式 var person = new Object(); person.name = "jack"; person.sayName = function () { alert(this.name) } 使用Object构造函数 var person = { na
-
JS 对象介绍
JavaScript is an Object Oriented Programming (OOP) language. JS是面向对象的编程语言(面向对象). (这里是基于对象还是面向对象大家可以搜索下)An OOP language allows you to define your own objects and make your own variable types. OOP语言可以让你自定义对象和变量类型. --------------------------------------
-
Vue.js对象转换实例
废话不多说了,直接给大家贴代码了.具体代码如下所示: var app = new Vue({ el: "#app", data: { login: { name: "", psd: "" } }, methods: { submit: function() { //转换成自己想要的对象 var obj = JSON.stringify(this.login); console.log(obj); axios.post("/login&q
随机推荐
- 基于jQuery实现文本框只能输入数字(小数、整数)
- vue.js学习笔记:如何加载本地json文件
- 11个有用的Linux命令
- java使用pdfbox操作pdf文件示例
- Java容器HashMap与HashTable详解
- java基于线程池和反射机制实现定时任务完整实例
- Perl使用Tesseract-OCR实现验证码识别教程
- asp.net(C#) 生成随机验证码的代码
- 教学演示-UBB,剪贴板,textRange及其他
- javascript数组操作总结和属性、方法介绍
- 怎样在php中使用PDF文档功能
- go语言获取系统盘符的方法
- Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
- 详解WordPress开发中get_current_screen()函数的使用
- DIV+CSS 滑动门技术的简单例子
- JavaScript QueryString解析类代码
- Lua的内存管理浅析
- js实现城市级联菜单的2种方法
- javascript跟随鼠标的文字带滚动效果
- js将字符转换为UTF-8字符的工具