Skip to content

matches

INFO

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

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

创建一个函数来对给定的目标对象和源对象进行深度比较。

这个函数产生与isMatch函数相同的结果,但提供了不同的调用方式。

签名

typescript
function matches(source: unknown): (target: unknown) => boolean;

参数

  • source (unknown): 用于创建匹配器的源对象。

返回值

  • ((target: unknown) => boolean): 返回一个函数,该函数接收一个目标对象,如果目标对象与源对象匹配则返回true,否则返回false

示例

基本用法

typescript
const matcher = matches({ a: 1, b: 2 });
matcher({ a: 1, b: 2, c: 3 }); // true
matcher({ a: 1, c: 3 }); // false

匹配数组

typescript
const arrayMatcher = matches([1, 2, 3]);
arrayMatcher([1, 2, 3, 4]); // true
arrayMatcher([4, 5, 6]); // false

匹配嵌套结构

typescript
// Matching objects with nested structures
const nestedMatcher = matches({ a: { b: 2 } });
nestedMatcher({ a: { b: 2, c: 3 } }); // true
nestedMatcher({ a: { c: 3 } }); // false