Correct: `Array.from()` (it’s a static method) Incorrect: `Array.join()` (doesn’t exist; it’s a prototype method) This patch uses the common `#` syntax to denote `.prototype.`.
16 lines
666 B
Markdown
16 lines
666 B
Markdown
### matches
|
|
|
|
Compares two objects to determine if the first one contains equivalent property values to the second one.
|
|
|
|
Use `Object.keys(source)` to get all the keys of the second object, then `Array.prototype.every()`, `Object.hasOwnProperty()` and strict comparison to determine if all keys exist in the first object and have the same values.
|
|
|
|
```js
|
|
const matches = (obj, source) =>
|
|
Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);
|
|
```
|
|
|
|
```js
|
|
matches({ age: 25, hair: 'long', beard: true }, { hair: 'long', beard: true }); // true
|
|
matches({ hair: 'long', beard: true }, { age: 25, hair: 'long', beard: true }); // false
|
|
```
|