diff --git a/snippets/array-concatenation.md b/snippets/array-concatenation.md index 992036905..40bf43c29 100644 --- a/snippets/array-concatenation.md +++ b/snippets/array-concatenation.md @@ -3,6 +3,6 @@ Use `Array.concat()` to concatenate an array with any additional arrays and/or values, specified in `args`. ```js -const arrayConcat = (arr, ...args) => arr.concat(...args); -// arrayConcat([1], 2, [3], [[4]]) -> [1,2,3,[4]] +const ArrayConcat = (arr, ...args) => [].concat(arr, ...args); +// ArrayConcat([1], [1, 2, 3, [4]]) -> [1, 2, 3, [4]] ``` diff --git a/snippets/array-remove.md b/snippets/array-remove.md new file mode 100644 index 000000000..e08a4a02f --- /dev/null +++ b/snippets/array-remove.md @@ -0,0 +1,13 @@ +### Array remove + +Use `Array.filter()` to find array elements that return truthy values and `Array.reduce()` to remove elements using `Array.splice()`. +The `func` is invoked with three arguments (`value, index, array`). + +```js +const remove = (arr, func) => + Array.isArray(arr) ? 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] +```