zoukankan      html  css  js  c++  java
  • 全相等函数 isEqual

    手写全相等函数isEqual , 限制:{} ,[]

    主要思路: 递归

    // 判断obj是否为对象
    function isObject(obj) {
      return (typeof obj === 'object' && obj !== null);
    }
    //全相等函数
    function isEqual(obj1,obj2) {
      //如果其中一个不为对象,则判断两个是否严格相等
      if (!isObject(obj1) || !isObject(obj2)) {
        return obj1 === obj2;
      }
      // 到了这里说明两个都是对象
      // 先判断引用是否相等
      if (obj1 === obj2) {
        return true;
      }
      
      //判断两个对象中的键的个数是否相同
      if (Object.keys(obj1).length !== Object.keys(obj2).length) {
        return false;
      }
      // 以obj1 为基准, 递归判断obj1和obj2中的元素是否相等
      for (let key in obj1) {
        const res = isEqual(obj1[key],obj2[key]);
        if (!res) {
          return false;
        }
      }
      // 全相等
      return true;
    }
    

    测试数据

    const obj1 = {
                a: 100,
                b: 'shit',
                color: ['red', 'green'],
                location: {
                    city: 'BJ',
                    region: "CHINA"
                }
            };
    
    const obj2 = {
                a: 100,
                b: 'shit',
                color: ['red', 'green'],
                location: {
                    city: 'BJ',
                    region: "CHINA"
                }
            };
    console.log(isEqual(obj1,obj2)); // true
    
    
    慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
  • 相关阅读:
    第八周上机作业
    第七次作业
    第七周上机
    第六周作业
    4.9上机作业
    第五周作业
    第四周作业
    第二次上机作业
    第三周作业
    第九周上机练习
  • 原文地址:https://www.cnblogs.com/rookie123/p/14244827.html
Copyright © 2011-2022 走看看