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 相关文章推荐
js跟随滚动条滚动浮动代码
Dec 31 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
JS高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
js网页版计算器的简单实现
Jul 02 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
JS获取网页图片name属性的方法
Apr 01 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
boostrap模态框二次弹出清空原有内容的方法
Aug 10 Javascript
js实现点击按钮随机生成背景颜色
Sep 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 empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php生成RSS订阅的方法
2015/02/13 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
js获取时间精确到秒(年月日)
2016/03/16 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
python爬虫之百度API调用方法
2017/06/11 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python sublime安装及配置过程详解
2020/06/29 Python
Python基于execjs运行js过程解析
2020/11/27 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
中学生家长评语大全
2014/04/16 职场文书
药品业务员岗位职责
2014/04/17 职场文书
机械工程学院大学生求职信
2014/05/25 职场文书
云冈石窟导游词
2015/02/04 职场文书
社区重阳节活动总结
2015/03/24 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
JavaScript 定时器详情
2021/11/11 Javascript
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript