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