zoukankan      html  css  js  c++  java
  • 「思考题」如何比较两个对象是否相等?(不考虑堆栈)

    如何比较两个对象是否相等?

    在JS中如果是值类型,可以使用 === 号来判断是否相等。而引用类型比较的是他们引用,因此不能直接用 === 来判断,下面介绍几种判断方法。

     const obj = {name: 'xiaoming', age: [18, 24]}
     const obj2 = {name: 'xiaoming', age: [18, 24]}
     console.log('打印', obj === obj2) // false 这里 === 比较的是他们的引用
    

    方法一:JSON.stringify()

    将对象用Json.stringify()方法转换成字符串类型,然后用 === 来比较。(这种比较方法不严谨,如果两个对象键值对的顺序不相同则无法直接用这种方式判断)

    const obj1 = {name: 'xiaoming', age: [18, 24]}
    const obj2 = {name: 'xiaoming', age: [18, 24]}
    const obj3 = {age: [18, 24], name: 'xiaoming'}
    const res1 = JSON.stringify(obj1)
    const res2 = JSON.stringify(obj2)
    const res3 = JSON.stringify(obj3)
     console.log('打印', res1 === res2) // true
     console.log('打印', res1 === res3) // false  调换健值对顺序后的比较结果
    

    方法二:需要递归解决循环引用比较麻烦、后续抽时间更新

  • 相关阅读:
    抓包之网络分析器- Wiresshark
    IT 技术网站收集
    XAMPP Apache + MariaDB + PHP + Perl
    http://101.132.165.115/
    LNMP 网站搭建
    10X Genomics : Single Cell Gene Expression
    PacBio下机数据如何看?
    光模块
    ubuntu 'yuan' update
    Perl 中 `cmd` 和system"cmd"的区别
  • 原文地址:https://www.cnblogs.com/liea/p/12515020.html
Copyright © 2011-2022 走看看