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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
Mar 29 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
js的for in循环和java里foreach循环的区别分析
Jan 28 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
May 17 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
js实现添加删除表格(两种方法)
Apr 27 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
Oct 31 Javascript
layui实现下拉框三级联动
Jul 26 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
初探PHP5
2006/10/09 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
浅谈es6中的元编程
2020/12/01 Javascript
win与linux系统中python requests 安装
2016/12/04 Python
python人民币小写转大写辅助工具
2018/06/20 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
保护环境倡议书范文
2014/05/13 职场文书
三问三解心得体会
2014/09/05 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
深入理解redis中multi与pipeline
2021/06/02 Redis