Home / Function/ looseEqual() — vue Function Reference

looseEqual() — vue Function Reference

Architecture documentation for the looseEqual() function in util.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  147b39e9_55ce_c0f2_346f_388668241cce["looseEqual()"]
  ce303fd5_0a15_37d7_872a_d1ca73ec7f6a["util.ts"]
  147b39e9_55ce_c0f2_346f_388668241cce -->|defined in| ce303fd5_0a15_37d7_872a_d1ca73ec7f6a
  b184a1fd_bdbd_bb9b_ea98_2b9a41f2933e["looseIndexOf()"]
  b184a1fd_bdbd_bb9b_ea98_2b9a41f2933e -->|calls| 147b39e9_55ce_c0f2_346f_388668241cce
  b9b5088c_fb08_6800_f248_ef1b18619844["isObject()"]
  147b39e9_55ce_c0f2_346f_388668241cce -->|calls| b9b5088c_fb08_6800_f248_ef1b18619844
  style 147b39e9_55ce_c0f2_346f_388668241cce fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/shared/util.ts lines 305–344

export function looseEqual(a: any, b: any): boolean {
  if (a === b) return true
  const isObjectA = isObject(a)
  const isObjectB = isObject(b)
  if (isObjectA && isObjectB) {
    try {
      const isArrayA = Array.isArray(a)
      const isArrayB = Array.isArray(b)
      if (isArrayA && isArrayB) {
        return (
          a.length === b.length &&
          a.every((e: any, i: any) => {
            return looseEqual(e, b[i])
          })
        )
      } else if (a instanceof Date && b instanceof Date) {
        return a.getTime() === b.getTime()
      } else if (!isArrayA && !isArrayB) {
        const keysA = Object.keys(a)
        const keysB = Object.keys(b)
        return (
          keysA.length === keysB.length &&
          keysA.every(key => {
            return looseEqual(a[key], b[key])
          })
        )
      } else {
        /* istanbul ignore next */
        return false
      }
    } catch (e: any) {
      /* istanbul ignore next */
      return false
    }
  } else if (!isObjectA && !isObjectB) {
    return String(a) === String(b)
  } else {
    return false
  }
}

Domain

Subdomains

Defined In

Calls

Called By

Frequently Asked Questions

What does looseEqual() do?
looseEqual() is a function in the vue codebase, defined in src/shared/util.ts.
Where is looseEqual() defined?
looseEqual() is defined in src/shared/util.ts at line 305.
What does looseEqual() call?
looseEqual() calls 1 function(s): isObject.
What calls looseEqual()?
looseEqual() is called by 1 function(s): looseIndexOf.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free