zoukankan      html  css  js  c++  java
  • JS中Object类型相等判定方法

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

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

    var compare = function (Obj_1,Obj_2) {

      var state = true;

      for (var key in Obj_1) {

        if (typeof (Obj_2[key]) === 'undefined') {

          state = false;

        } else {

          if (typeof (Obj_1[key]) === 'object') {

            state = 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类型来进行比较。

  • 相关阅读:
    Redis学习笔记
    Sevrlet 工作原理解析-转
    Spring MVC基础学习
    JVMGC机制
    MyBatis基础学习笔记--摘录
    MyBatis基础学习笔记--自总结
    Spring基础复习
    java.lang.Class类
    浅谈linux静态库、动态库。
    关于字符编码的一点学习。
  • 原文地址:https://www.cnblogs.com/DARKDD/p/3543711.html
Copyright © 2011-2022 走看看