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

  • 相关阅读:
    ng-if 下ng-model失效 ng-repeat循环输出单选框
    ng-repeat输出当前值,ng-class的使用
    SQL-select中使用条件判断语句
    JS-Ajax
    ASP.NET-缓存Cache
    MVC-Filter-脚本注入
    三层架构与MVC的区别
    MVC-Route
    cookie-session
    初衷
  • 原文地址:https://www.cnblogs.com/DARKDD/p/3543711.html
Copyright © 2011-2022 走看看