Skip to content

isMatch

INFO

出于兼容性原因,此函数仅在 es-toolkit/compat 中提供。它可能具有替代的原生 JavaScript API,或者尚未完全优化。

es-toolkit/compat 导入时,它的行为与 lodash 完全一致,并提供相同的功能,详情请见 这里

检查目标是否与源匹配,方法是比较它们的结构和值。 此函数支持对象、数组、映射和集合的深度比较。

签名

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

参数

  • target (unknown): 要匹配的目标值。
  • source (unknown): 用于匹配的源值。

返回值

(boolean): 如果目标与源匹配,则返回 true,否则返回 false

示例

基本用法

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

匹配数组

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

匹配映射

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

匹配集合

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