首页 > 编程语言 >JavaScript:判断数组对象值是否相同的函数声明

JavaScript:判断数组对象值是否相同的函数声明

时间:2023-01-26 00:12:21浏览次数:41  
标签:false 函数 对象 是否 JavaScript prop 键值 数组 return

 var obj1 = {
        name: "w",
      };
      var obj2 = {
        name: "w",
      };
     
      function isObjectValueEqual(a, b) {
        // 判断两个对象是否指向同一内存,指向同一内存返回 true
        if (a === b) return true;
        // 获取两个对象键值数组
        let aProps = Object.getOwnPropertyNames(a);
        let bProps = Object.getOwnPropertyNames(b);
        // 判断两个对象键值数组长度是否一致,不一致返回 false
        if (aProps.length !== bProps.length) return false;
        // 遍历对象的键值
        for (let prop in a) {
          // 判断 a 的键值,在 b 中是否存在,不存在,返回 false
          if (b.hasOwnProperty(prop)) {
            // 判断 a 的键值是否为对象,是则递归,不是对象直接判断键值是否相等,不相等返回 false
            if (typeof a[prop] === "object") {
              if (!isObjectValueEqual(a[prop], b[prop])) return false;
            } else if (a[prop] !== b[prop]) {
              return false;
            }
          } else {
            return false;
          }
        } //for
        return true;
      }
      console.log(isObjectValueEqual(obj1, obj2)); // false

 

标签:false,函数,对象,是否,JavaScript,prop,键值,数组,return
From: https://www.cnblogs.com/ZhuAo/p/17067476.html

相关文章

  • C++成员初始化列表比在构造函数内部赋值效率更高
    A是个类,B中包含A类的对象在执行构造函数的时候,如果内部有类对象,使用列表初始化效率会更高B中的a和b都是A的对象a是用的列表初始化b是在构造函数内部初始化a只会执行一......
  • 一元函数积分概念、计算及应用
    一、一元函数积分的概念和性质一元函数积分学包括不定积分与定积分两部分。定积分在几何、物理、工程技术、经济等领域均有广泛的应用,是一元积分的核心。不定积分实质是......
  • 数组旋转k步
    时间复杂度O(n^2)空间复杂度O(1)constrorateKstep=(arr=[1,2,3,4,5,6,7],step=3)=>{constlength=arr.lengthfor(leti=0;i<3;i++){......
  • Day02 - JavaScripts
    1.javascript介绍JavaScript的定义JavaScript是运行在浏览器端的脚步语言,是由浏览器解释执行的,简称js,它能够让网页和用户有交互功能,增加良好的用户体验效果。......
  • 【Python基础学习】5.函数和代码复用
    主要参考来源:慕课嵩天老师的“Python语言程序设计”[https://www.icourse163.org/course/BIT-268001?tid=1468130447]5.1函数的定义与使用函数的理解与定义函数是一段具......
  • power函数
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<iostream>doublepower(doublex,doubley){doublez=1;while(y){z*=x;--y;}returnz;}voidma......
  • ThinkPHP函数详解:cache方法
    cache方法是3.0版本开始新增的缓存管理方法。注意:3.1.2版本后因cache方法并入原S方法,所以cache方法不再建议使用,用S方法即可。cache用于缓存设置、获取、删除操作用......
  • 在CListView中添加点击右键消息响应函数!
    //简单几步就可以了,整个过程描述和截图如下所下:用ClassWizard中的MessageMaps功能添加对NM_RCLICK消息的响应函数://添加成功后,直接编辑函数代码即可voidCRightMenuView:......
  • 函数的封装之获取进程句柄...
    现在写程序,经常要获取进程的句柄,为此我将它封装成了一个函数,呵呵,以后直接Copy就可以用了...HANDLEGetProHandle::getProcessHandle(CStringcaption){//用于保存指定窗口......
  • JavaScript学习笔记—Map
    Map用来存储键值对结构的数据(key-value)Map中任何类型的值都可以成为数据的key1.创建:newMap()2.属性和方法:(1)map.size()获取map中键值对的数量(2)map.set(key,val......