Travis build: 1346
This commit is contained in:
60
README.md
60
README.md
@ -284,6 +284,8 @@ average(1, 2, 3);
|
|||||||
* [`lowercaseKeys`](#lowercasekeys)
|
* [`lowercaseKeys`](#lowercasekeys)
|
||||||
* [`mapKeys`](#mapkeys)
|
* [`mapKeys`](#mapkeys)
|
||||||
* [`mapValues`](#mapvalues)
|
* [`mapValues`](#mapvalues)
|
||||||
|
* [`matches`](#matches)
|
||||||
|
* [`matchesWith`](#matcheswith)
|
||||||
* [`merge`](#merge)
|
* [`merge`](#merge)
|
||||||
* [`objectFromPairs`](#objectfrompairs)
|
* [`objectFromPairs`](#objectfrompairs)
|
||||||
* [`objectToPairs`](#objecttopairs)
|
* [`objectToPairs`](#objecttopairs)
|
||||||
@ -4533,6 +4535,64 @@ mapValues(users, u => u.age); // { fred: 40, pebbles: 1 }
|
|||||||
<br>[⬆ Back to top](#table-of-contents)
|
<br>[⬆ Back to top](#table-of-contents)
|
||||||
|
|
||||||
|
|
||||||
|
### 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.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]);
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Examples</summary>
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<br>[⬆ Back to top](#table-of-contents)
|
||||||
|
|
||||||
|
|
||||||
|
### matchesWith
|
||||||
|
|
||||||
|
Compares two objects to determine if the first one contains equivalent property values to the second one, based on a provided function.
|
||||||
|
|
||||||
|
Use `Object.keys(source)` to get all the keys of the second object, then `Array.every()`, `Object.hasOwnProperty()` and the provided function to determine if all keys exist in the first object and have equivalent values.
|
||||||
|
If no function is provided, the values will be compared using the equality operator.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const matchesWith = (obj, source, fn) =>
|
||||||
|
Object.keys(source).every(
|
||||||
|
key =>
|
||||||
|
obj.hasOwnProperty(key) && fn
|
||||||
|
? fn(obj[key], source[key], key, obj, source)
|
||||||
|
: obj[key] == source[key]
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Examples</summary>
|
||||||
|
|
||||||
|
```js
|
||||||
|
const isGreeting = val => /^h(?:i|ello)$/.test(val);
|
||||||
|
matchesWith(
|
||||||
|
{ greeting: 'hello' },
|
||||||
|
{ greeting: 'hi' },
|
||||||
|
(oV, sV) => isGreeting(oV) && isGreeting(sV)
|
||||||
|
); // true
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<br>[⬆ Back to top](#table-of-contents)
|
||||||
|
|
||||||
|
|
||||||
### merge
|
### merge
|
||||||
|
|
||||||
Creates a new object from the combination of two or more objects.
|
Creates a new object from the combination of two or more objects.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -6,12 +6,10 @@ Use `Object.keys(source)` to get all the keys of the second object, then `Array.
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
const matches = (obj, source) =>
|
const matches = (obj, source) =>
|
||||||
Object.keys(source).every(
|
Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);
|
||||||
key => obj.hasOwnProperty(key) && obj[key] === source[key]
|
|
||||||
);
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
matches({ age: 25, hair: 'long', beard: true }, { hair: 'long', beard: true }) // true
|
matches({ age: 25, hair: 'long', beard: true }, { hair: 'long', beard: true }); // true
|
||||||
matches({ hair: 'long', beard: true }, { age: 25, hair: 'long', beard: true }) // false
|
matches({ hair: 'long', beard: true }, { age: 25, hair: 'long', beard: true }); // false
|
||||||
```
|
```
|
||||||
|
|||||||
@ -17,5 +17,9 @@ const matchesWith = (obj, source, fn) =>
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
const isGreeting = val => /^h(?:i|ello)$/.test(val);
|
const isGreeting = val => /^h(?:i|ello)$/.test(val);
|
||||||
matchesWith({ greeting: 'hello' }, { greeting: 'hi' }, (oV, sV) => isGreeting(oV) && isGreeting(sV)); // true
|
matchesWith(
|
||||||
|
{ greeting: 'hello' },
|
||||||
|
{ greeting: 'hi' },
|
||||||
|
(oV, sV) => isGreeting(oV) && isGreeting(sV)
|
||||||
|
); // true
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user