js中比较两个对象是否相同的方法示例


Posted in Javascript onSeptember 02, 2019

本文实例讲述了js中比较两个对象是否相同的方法。分享给大家供大家参考,具体如下:

js中,很轻易就可以比较2个普通字符串/数字是否相同,但是,如何比较2个对象是否相同呢?

在此我便给出较为简单的方法,如下:

//比较2个对象是否相同
function isObjEqual(o1,o2){
  var props1 = Object.getOwnPropertyNames(o1);
  var props2 = Object.getOwnPropertyNames(o2);
  if (props1.length != props2.length) {
    return false;
  }
  for (var i = 0,max = props1.length; i < max; i++) {
    var propName = props1[i];
    if (o1[propName] !== o2[propName]) {
      return false;
    }
  }
  return true;
}
var obj1 = {id:1,name:"张三"}
var obj2 = {id:2,name:"李四"}
var obj3 = {id:1,name:"张三",age:25}
var obj4 = {id:1,name:"张三"}
console.log(isObjEqual(obj1,obj2));//false
console.log(isObjEqual(obj1,obj3));//false
console.log(isObjEqual(obj1,obj4));//true

运行结果:

js中比较两个对象是否相同的方法示例

扩展写法:

Object.prototype.vequal = function(obj){
  var props1 = Object.getOwnPropertyNames(this);
  var props2 = Object.getOwnPropertyNames(obj);
  if (props1.length != props2.length) {
    return false;
  }
  for (var i = 0,max = props1.length; i < max; i++) {
    var propName = props1[i];
    if (this[propName] !== obj[propName]) {
      return false;
    }
  }
  return true;
}
var obj1 = {id:1,name:"张三"}
var obj2 = {id:2,name:"李四"}
var obj3 = {id:1,name:"张三",age:25}
var obj4 = {id:1,name:"张三"}
console.log(obj1.equal(obj2));//false
console.log(obj1.equal(obj3));//false
console.log(obj1.equal(obj4));//true

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
javascript面向对象程序设计(一)
Jan 29 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
利用纯js + transition动画实现移动端web轮播图详解
Sep 10 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
Dec 19 Javascript
js中offset,client , scroll 三大元素知识点总结
Sep 11 Javascript
浅谈vue限制文本框输入数字的正确姿势
Sep 02 #Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
Sep 02 #Javascript
layer父页获取弹出层输入框里面的值方法
Sep 02 #Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 #Javascript
详解基于Vue的支持数据双向绑定的select组件
Sep 02 #Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 #Javascript
Vue内部渲染视图的方法
Sep 02 #Javascript
You might like
怎么使 Mysql 数据同步
2006/10/09 PHP
yii上传文件或图片实例
2014/04/01 PHP
PHP数组函数知识汇总
2016/05/12 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
详解Python中第三方库Faker
2020/09/25 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
团员自我评价范文
2015/03/10 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
小学班主任教育随笔
2015/08/15 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python