diff --git a/README.md b/README.md index 77a5233e9..eacb3932a 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ * [Random number in range](#random-number-in-range) * [Randomize order of array](#randomize-order-of-array) * [Redirect to url](#redirect-to-url) +* [Remove](#remove) * [Reverse a string](#reverse-a-string) * [RGB to hexadecimal](#rgb-to-hexadecimal) * [Run promises in series](#run-promises-in-series) @@ -610,6 +611,19 @@ const redirect = (url, asLink = true) => // redirect('https://google.com') ``` +### Remove + +Remove elements from `arr` that are returns truthy. Use `Array.filter()` to finding the matching elements and `Array.reduce()` to remove elements using `Array.splice()`.The `func` is invoked with three arguments: (value, index, array). + +```js +const remove = (arr, func) => + arr.filter(func).reduce((acc, val) => { + arr.splice(arr.indexOf(val), 1) + return acc.concat(val); + }, []) +//remove([1, 2, 3, 4], n => n % 2 == 0) -> [2, 4] +``` + ### Reverse a string Use array destructuring and `Array.reverse()` to reverse the order of the characters in the string. diff --git a/snippets/remove.md b/snippets/remove.md new file mode 100644 index 000000000..6c8e71d55 --- /dev/null +++ b/snippets/remove.md @@ -0,0 +1,12 @@ +### Remove + +Remove elements from `arr` that are returns truthy. Use `Array.filter()` to finding the matching elements and `Array.reduce()` to remove elements using `Array.splice()`.The `func` is invoked with three arguments: (value, index, array). + +```js +const remove = (arr, func) => + arr.filter(func).reduce((acc, val) => { + arr.splice(arr.indexOf(val), 1) + return acc.concat(val); + }, []) +//remove([1, 2, 3, 4], n => n % 2 == 0) -> [2, 4] +```