首页 > Web开发 > 详细

JS中Object类型相等判定方法

时间:2014-02-11 03:25:56      阅读:372      评论:0      收藏:0      [点我收藏+]

  在之前的工作中,碰到一个Object类型数据相等判定的问题,由于时间匆忙,采用了最笨的方法,将两个Object中每一项数据逐一进行判定来完成的。后来通过调查找到了两种解决的办法。

方法一:封装一个compare方法来进行两个Object的比较

var state = true;
var compare = function (Obj_1,Obj_2) {
  for (var key in Obj_1) {
    if (typeof (Obj_2[key]) === ‘undefined‘) {
      state = false;
    } else {
      if (typeof (Obj_1[key]) === ‘object‘) {
        compare(Obj_1[key],Obj_2[key]);
      } else {
        if (Obj_1[key] !== Obj_2[key]) {
        state = false;
        }
      }
    }
  }
  return state;
}

下面我们进行简单的几种测试:

①var a = {x:{c:1,d:2},y:2};var b = {x:{c:1,d:2},y:2};

compare(a,b) => true;判断正确

②var a = {x:{c:1,d:2},y:2};var b = {x:{c:1,d:3},y:2};

compare(a,b) => false;判断正确

③var a = {x:{c:1,d:2},y:2};var b = {y:3};

compare(a,b) => false;判断正确

方法二:将Object转化为String类型来进行判定

利用JSON的stringify方法来进行转化
如:var a = {x:1,y:2},

JSON.stringify(a);将会输出"{"x":1,"y":2}",如此可以将两个Object类型转化为String类型来进行比较。

JS中Object类型相等判定方法

原文:http://www.cnblogs.com/DARKDD/p/3543711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!