Home / Function/ looseEqual() — vue Function Reference

looseEqual() — vue Function Reference

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

Function typescript VueCore Instance calls 1 called by 1

Entity Profile

Dependency Diagram

graph TD
  e93f627f_dac8_be53_5ccd_05c8b2c72e2d["looseEqual()"]
  b7977953_caa1_d867_207c_74cfbf6421e0["util.ts"]
  e93f627f_dac8_be53_5ccd_05c8b2c72e2d -->|defined in| b7977953_caa1_d867_207c_74cfbf6421e0
  aba0da38_1262_d53c_f39d_9081610fab31["looseIndexOf()"]
  aba0da38_1262_d53c_f39d_9081610fab31 -->|calls| e93f627f_dac8_be53_5ccd_05c8b2c72e2d
  6c50c697_3e50_26c1_85ed_ce95cf6e8b72["isObject()"]
  e93f627f_dac8_be53_5ccd_05c8b2c72e2d -->|calls| 6c50c697_3e50_26c1_85ed_ce95cf6e8b72
  style e93f627f_dac8_be53_5ccd_05c8b2c72e2d 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