1、比较两个对象是否相等

  1. 通过遍历对象的键值进行比较 ```javascript function isObjectValueEqual(a, b) { // 判断两个对象是否指向同一内存,指向同一内存返回 true if (a === b) return true // 获取两个对象键值数组 let aProps = Object.getOwnPropertyNames(a) let bProps = Object.getOwnPropertyNames(b) if (aProps.length !== bProps.length) return false // 遍历对象的键值 for (let prop in a) {

    1. // 判断 a 的键值,在 b 中是否存在,不存在,返回 false
    2. if (b.hasOwnProperty(prop)) {
    3. // 判断 a 的键值是否为对象,是则递归,不是对象直接判断键值是否相等,不相等返回 false
    4. if (typeof a[prop] === 'object') {
    5. if (!isObjectValueEqual(a[prop], b[prop])) return false
    6. } else if (a[prop] !== b[prop]) {
    7. return false
    8. }
    9. } else {
    10. return false
    11. }

    } return true }

    let obj1 = { a: 1, b: { c: 2 } } let obj2 = { b: { c: 3 }, a: 1 } console.log(isObjectValueEqual(obj1, obj2)) // false

```

  1. 利用 lodash 的 isEqual 方法。