zoukankan      html  css  js  c++  java
  • 判断两个对象相等

    <script>

    var a = {
    name: 'jk',
    age: 12,
    say: {
    today: 'hi',
    yesterday: 'no'
    },
    arr: [1,2]
    };

    var b = {
    name: 'jk',
    age: 12,
    say: {
    today: 'hi',
    yesterday: 'no'
    },
    arr: [1,2]
    };

    console.log(isObjectValueEqual(a, b));

    function isObjectValueEqual(a, b) {
    if (typeof a == 'number' && typeof b == 'number') {
    return a == b
    }


    var aProps = Object.getOwnPropertyNames(a);
    var bProps = Object.getOwnPropertyNames(b);

    if (aProps.length != bProps.length) {
    return false;
    }

    for (var i = 0; i < aProps.length; i++) {
    var propName = aProps[i];
    console.log(propName, Object.prototype.toString(a[propName]));
    //if (Object.prototype.toString(a[propName]) == '[Object Object]' || Object.prototype.toString(b[propName]) == '[Object Object]') {
    if ( typeof a[propName] === 'object' || typeof b[propName] === 'object' ){
    console.log(a[propName], b[propName]);
    isObjectValueEqual(a[propName], b[propName])
    }else if (a[propName] !== b[propName]) {
    return false;
    }
    }
    return true;
    }
    </script>
  • 相关阅读:
    最长递增子序列
    Mit os Lab 2. Memory Management
    [ZZ]实现c协程
    Linux socket IO模型
    emacs简单入门
    令牌桶-流量控制
    GNU Makefile tips
    Linux atomic memory access
    [zz]Linux系统相关shell命令
    state thread
  • 原文地址:https://www.cnblogs.com/mazhaokeng/p/7058027.html
Copyright © 2011-2022 走看看