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 相关文章推荐
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
Apr 25 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
jQuery代码优化 事件委托篇
Nov 01 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
JS组件Bootstrap实现图片轮播效果
May 16 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
React Navigation 使用中遇到的问题小结
May 08 Javascript
基于D3.js实现时钟效果
Jul 17 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
浅谈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
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jQuery技巧总结
2011/01/01 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
js单词形式的运算符
2014/05/06 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python写入xml文件的方法
2015/05/08 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
html5使用canvas画一条线
2014/12/15 HTML / CSS
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
金讯Java笔试题目
2013/06/18 面试题
转预备党员政审材料
2014/02/06 职场文书
求职简历自荐信
2014/06/18 职场文书
银行业务授权委托书
2014/10/10 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
委托公证书样本
2015/01/23 职场文书
成绩单家长意见
2015/06/03 职场文书
教育教学读书笔记
2015/07/02 职场文书