Add findKey, findLastKey

This commit is contained in:
Angelos Chalaris
2018-01-23 18:23:20 +02:00
parent d47f85acc0
commit 16b7df3783
3 changed files with 30 additions and 0 deletions

14
snippets/findKey.md Normal file
View File

@ -0,0 +1,14 @@
### findKey
Returns the first key that satisfies the provided testing function. Otherwise `undefined` is returned.
Use `Object.keys(obj)` to get all the properties of the object, `Array.find()` to test the provided function for each key-value pair. The callback receives three arguments - the value, the key and the object.
```js
const findKey = (obj, fn) =>
Object.keys(obj).find(key => fn(obj[key], key, obj));
```
```js
findKey({barney: { age: 36, active: true }, fred: { age: 40, active: false }, pebbles: { age: 1, active: true }}, o => o['active']); // 'barney'
```

14
snippets/findLastKey.md Normal file
View File

@ -0,0 +1,14 @@
### findLastKey
Returns the last key that satisfies the provided testing function. Otherwise `undefined` is returned.
Use `Object.keys(obj)` to get all the properties of the object, `Array.reverse()` to reverse their order and `Array.find()` to test the provided function for each key-value pair. The callback receives three arguments - the value, the key and the object.
```js
const findLastKey = (obj, fn) =>
Object.keys(obj).reverse().find(key => fn(obj[key], key, obj));
```
```js
findKey({barney: { age: 36, active: true }, fred: { age: 40, active: false }, pebbles: { age: 1, active: true }}, o => o['active']); // 'pebbles'
```

View File

@ -47,7 +47,9 @@ extendHex:utility,string
factorial:math,recursion factorial:math,recursion
fibonacci:math,array fibonacci:math,array
filterNonUnique:array filterNonUnique:array
findKey:object,function
findLast:array findLast:array
findLastKey:object,function
flatten:array flatten:array
flip:adapter,function flip:adapter,function
forEachRight:array,function forEachRight:array,function