Skip to content

Function: isEqual()

ts
function isEqual(value, other): boolean;

Performs deep equality comparison between two values. 执行两个值之间的深度相等比较。

Parameters

ParameterTypeDescription
valueanyThe first value to compare / 要比较的第一个值
otheranyThe second value to compare / 要比较的第二个值

Returns

boolean

True if the values are deeply equal / 如果值深度相等则返回true

Example

typescript
// Primitive values
isEqual(1, 1) // => true
isEqual('hello', 'hello') // => true
isEqual(true, true) // => true
isEqual(null, null) // => true
isEqual(undefined, undefined) // => true

// Different primitive values
isEqual(1, 2) // => false
isEqual('hello', 'world') // => false
isEqual(null, undefined) // => false

// Arrays
isEqual([1, 2, 3], [1, 2, 3]) // => true
isEqual(['a', 'b'], ['a', 'b']) // => true
isEqual([1, 2], [1, 2, 3]) // => false (different lengths)
isEqual([1, 2], [2, 1]) // => false (different order)

// Nested arrays
isEqual([[1, 2], [3, 4]], [[1, 2], [3, 4]]) // => true
isEqual([[1, 2], [3, 4]], [[1, 2], [3, 5]]) // => false

// Objects
isEqual({ a: 1, b: 2 }, { a: 1, b: 2 }) // => true
isEqual({ a: 1, b: 2 }, { b: 2, a: 1 }) // => true (key order doesn't matter)
isEqual({ a: 1 }, { a: 1, b: 2 }) // => false (different keys)

// Nested objects
isEqual({ a: { b: { c: 1 } } }, { a: { b: { c: 1 } } }) // => true
isEqual({ a: { b: { c: 1 } } }, { a: { b: { c: 2 } } }) // => false

// Mixed structures
const obj1 = { users: [{ name: 'Alice', age: 25 }], count: 1 }
const obj2 = { users: [{ name: 'Alice', age: 25 }], count: 1 }
isEqual(obj1, obj2) // => true

Since

1.0.0

Released under the MIT License.