# deep-match

> Check if two values deeply match

Latest version **1.0.0** (published 2016-03-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install deep-match
pnpm add deep-match
yarn add deep-match
bun add deep-match
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2016-03-04 |
| First published | 2016-03-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Author | Felix Gnass |
| Maintainers | fgnass |
| Keywords | deep, comparision, satisfy, satisfies, isMatch |

## Links

- npm: https://www.npmjs.com/package/deep-match
- Repository: https://github.com/fgnass/deep-match
- Homepage: https://github.com/fgnass/deep-match#readme
- Issues: https://github.com/fgnass/deep-match/issues
- npm.io page: https://npm.io/package/deep-match

## Recent versions

- 1.0.0 (latest) — 2016-03-04

## README

# Check if two values deeply match

`deepMatch(object, example)`

All properties and nested objects mentioned in the `example` are required to be
present in `object`.

```js
// two objects that look exactly the same
deepMatch({ a: 1, b: 2 } }, { a: 1, b: 2 }); // true

// additional properties on the left-hand side are ignored
deepMatch({ a: 1, b: 2 } }, { a: 1 }); // true

// everything on the right-hand side is required
deepMatch({ a: 1 } }, { a: 1, b: 2 }); // false

// same for arrays
deepMatch([1, 2, 3], [1, 2]); // true
deepMatch([1, 2, 3], [3, 4]); // false
```

Regular expressions and functions in the `example` are run against the corresponding values in the `object`:

```js
deepMatch('aaa', /a+/); // true
deepMatch('bbb', /a+/); // false
deepMatch(['aaa', 'bbb'], [/a+/]); // true
deepMatch(['aaa', 'bbb'], [/a+/, /b+/]); // true
deepMatch(['aaa', 'ccc'], [/a+/, /b+/]); // false
deepMatch([1, 2, 3], [v => v === 1]); // true

```

## Rules

Values are compared according to the following rules:

* Identical values always match.
* Values of different types never match.
* Values that are no objects only match if they are identical (see above).
* Null values (which are also objects) only match if both are null.
* Arrays match if all items in the example match.
* Objects match if all properties in the example match.

# License

MIT

---
_Source: https://npm.io/package/deep-match · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
