Files
30-seconds-of-code/snippets/pull.md
Selim Ajimi 4b0bc342c1 Fix typos in spaces
Fix typo to fit the context

Fix typo add space

Fix small typo

Fix small typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Update tail.md

Fix typo

Fix small typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix small typo

Fix typo

Fix small typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo

Fix typo
2017-12-22 23:48:42 +01:00

26 lines
866 B
Markdown

### pull
Mutates the original array to filter out the values specified.
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.
_(For a snippet that does not mutate the original array see [`without`](#without))_
```js
const pull = (arr, ...args) => {
let argState = Array.isArray(args[0]) ? args[0] : args;
let pulled = arr.filter((v, i) => !argState.includes(v));
arr.length = 0;
pulled.forEach(v => arr.push(v));
};
// let myArray1 = ['a', 'b', 'c', 'a', 'b', 'c'];
// pull(myArray1, 'a', 'c');
// console.log(myArray1) -> [ 'b', 'b' ]
// let myArray2 = ['a', 'b', 'c', 'a', 'b', 'c'];
// pull(myArray2, ['a', 'c']);
// console.log(myArray2) -> [ 'b', 'b' ]
```