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 相关文章推荐
iphone safari不支持position fixed的解决方法
May 04 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
Mar 13 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
Javascript获取某个月的天数
May 30 Javascript
详解node字体压缩插件font-spider的用法
Sep 28 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
Feb 28 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
Element Rate 评分的使用方法
Jul 27 Javascript
Vue 实现拨打电话操作
Nov 16 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php 保留小数点
2009/04/21 PHP
探讨php中header的用法详解
2013/06/07 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php文件包含的几种方式总结
2019/09/19 PHP
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python中的index()方法使用教程
2015/05/18 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
网站域名和主机:Domain.com
2019/04/01 全球购物
委托公证书范本
2014/04/03 职场文书
节水宣传标语口号
2015/12/26 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
八年级物理教学反思
2016/02/19 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers