Skip to content

isMatch ​

INFO

This function is only available in es-toolkit/compat for compatibility reasons. It either has alternative native JavaScript APIs or isn’t fully optimized yet.

When imported from es-toolkit/compat, it behaves exactly like lodash and provides the same functionalities, as detailed here.

Checks if the target matches the source by comparing their structures and values. This function supports deep comparison for objects, arrays, maps, and sets.

Signature ​

typescript
function isMatch(target: unknown, source: unknown): boolean;

Parameters ​

  • target (unknown): The target value to match against.
  • source (unknown): The source value to match with.

Returns ​

(boolean): Returns true if the target matches the source, otherwise false.

Examples ​

Basic usage ​

typescript
isMatch({ a: 1, b: 2 }, { a: 1 }); // true

Matching arrays ​

typescript
isMatch([1, 2, 3], [1, 2, 3]); // true
isMatch([1, 2, 2, 3], [2, 2]); // true
isMatch([1, 2, 3], [2, 2]); // false

Matching maps ​

typescript
const targetMap = new Map([
  ['key1', 'value1'],
  ['key2', 'value2'],
]);
const sourceMap = new Map([['key1', 'value1']]);
isMatch(targetMap, sourceMap); // true

Matching sets ​

javascript
const targetSet = new Set([1, 2, 3]);
const sourceSet = new Set([1, 2]);
isMatch(targetSet, sourceSet); // true

Released under the MIT License.