looseEqual() — vue Function Reference
Architecture documentation for the looseEqual() function in util.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 65ecf248_3144_6fe6_6b3c_e026bf041584["looseEqual()"] 95dd9b42_a5f3_42b6_a271_71cac3934772["model()"] 95dd9b42_a5f3_42b6_a271_71cac3934772 -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 f680b438_de45_c1ec_3060_a99542a52731["actuallySetSelected()"] f680b438_de45_c1ec_3060_a99542a52731 -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 95f25cd9_aa67_97cd_0b32_972cc8e1ae6e["hasNoMatchingOption()"] 95f25cd9_aa67_97cd_0b32_972cc8e1ae6e -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 1dafb5a9_b144_8425_a384_6a574c550a19["directive.componentUpdated()"] 1dafb5a9_b144_8425_a384_6a574c550a19 -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 2b704f63_1e61_0631_3906_d1b4f81c276c["looseIndexOf()"] 2b704f63_1e61_0631_3906_d1b4f81c276c -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 1f0e6b8d_8dbc_03c4_5728_ec6fdb01be94["updateSelect()"] 1f0e6b8d_8dbc_03c4_5728_ec6fdb01be94 -->|calls| 65ecf248_3144_6fe6_6b3c_e026bf041584 2d184c1f_e247_ef28_44f9_122886cfd2a5["isObject()"] 65ecf248_3144_6fe6_6b3c_e026bf041584 -->|calls| 2d184c1f_e247_ef28_44f9_122886cfd2a5 style 65ecf248_3144_6fe6_6b3c_e026bf041584 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
Calls
Called By
Source
Frequently Asked Questions
What does looseEqual() do?
looseEqual() is a function in the vue codebase.
What does looseEqual() call?
looseEqual() calls 1 function(s): isObject.
What calls looseEqual()?
looseEqual() is called by 6 function(s): actuallySetSelected, directive.componentUpdated, hasNoMatchingOption, looseIndexOf, model, updateSelect.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free