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 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
js 设置缓存及获取设置的缓存
May 08 Javascript
jquery通过closest选择器修改上级元素的方法
Mar 17 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
详解使用Next.js构建服务端渲染应用
Jul 10 Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 Javascript
手把手15分钟搭一个企业级脚手架
Sep 16 Javascript
Vue.js实现立体计算器
Feb 22 Javascript
Vue全家桶入门基础教程
May 14 Vue.js
前端JS获取URL参数的4种方法总结
Apr 05 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
PHP过滤★等特殊符号的正则
2014/01/27 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
python 不关闭控制台的实现方法
2011/10/23 Python
Python的垃圾回收机制深入分析
2014/07/16 Python
Python实现统计单词出现的个数
2015/05/28 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
护理专业毕业生自荐信范文
2014/01/05 职场文书
安全生产责任书范本
2014/04/15 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python