Travis build: 1437

This commit is contained in:
30secondsofcode
2018-01-26 11:58:16 +00:00
parent 6d0c7a1d2a
commit ed72b2d0ec
3 changed files with 74 additions and 3 deletions

View File

@ -135,6 +135,7 @@ average(1, 2, 3);
* [`pull`](#pull)
* [`pullAtIndex`](#pullatindex)
* [`pullAtValue`](#pullatvalue)
* [`pullBy`](#pullby-)
* [`reducedFilter`](#reducedfilter)
* [`reduceSuccessive`](#reducesuccessive)
* [`reduceWhich`](#reducewhich)
@ -355,6 +356,7 @@ average(1, 2, 3);
* [`reverseString`](#reversestring)
* [`sortCharactersInString`](#sortcharactersinstring)
* [`splitLines`](#splitlines)
* [`stripHTMLtags`](#striphtmltags)
* [`toCamelCase`](#tocamelcase)
* [`toKebabCase`](#tokebabcase)
* [`toSnakeCase`](#tosnakecase)
@ -1709,6 +1711,40 @@ let pulled = pullAtValue(myArray, ['b', 'd']); // myArray = [ 'a', 'c' ] , pulle
<br>[⬆ Back to top](#table-of-contents)
### pullBy ![advanced](/advanced.svg)
Mutates the original array to filter out the values specified, based on a given iterator function.
Check if the last argument provided in a function.
Use `Array.map()` to apply the iterator function `fn` to all array elements.
Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed.
Use `Array.length = 0` to mutate the passed in an array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values.
```js
const pullBy = (arr, ...args) => {
const length = args.length;
let fn = length > 1 ? args[length - 1] : undefined;
fn = typeof fn == 'function' ? (args.pop(), fn) : undefined;
let argState = (Array.isArray(args[0]) ? args[0] : args).map(val => fn(val));
let pulled = arr.filter((v, i) => !argState.includes(fn(v)));
arr.length = 0;
pulled.forEach(v => arr.push(v));
};
```
<details>
<summary>Examples</summary>
```js
var myArray = [{ x: 1 }, { x: 2 }, { x: 3 }, { x: 1 }];
pullBy(myArray, [{ x: 1 }, { x: 3 }], o => o.x); // myArray = [{ x: 2 }]
```
</details>
<br>[⬆ Back to top](#table-of-contents)
### reducedFilter
Filter an array of objects based on a condition while also filtering out unspecified keys.
@ -6269,6 +6305,28 @@ splitLines('This\nis a\nmultiline\nstring.\n'); // ['This', 'is a', 'multiline',
<br>[⬆ Back to top](#table-of-contents)
### stripHTMLTags
Removes HTML/XML tags from string.
Use a regular expression to remove HTML/XML tags from a string.
```js
const stripHTMLTags = str => str.replace(/<[^>]*>/g, '');
```
<details>
<summary>Examples</summary>
```js
stripHTMLTags('<p><em>lorem</em> <strong>ipsum</strong></p>'); // 'lorem ipsum'
```
</details>
<br>[⬆ Back to top](#table-of-contents)
### toCamelCase
Converts a string to camelcase.

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,6 @@ const pullBy = (arr, ...args) => {
```
```js
var myArray = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
pullBy(myArray, [{ 'x': 1 }, { 'x': 3 }], o => o.x); // myArray = [{ x: 2 }]
var myArray = [{ x: 1 }, { x: 2 }, { x: 3 }, { x: 1 }];
pullBy(myArray, [{ x: 1 }, { x: 3 }], o => o.x); // myArray = [{ x: 2 }]
```