Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 2x 4x 2x 4x 4x 3x | import { Predicate } from "@benneq/predicate";
import { deleteAt } from "./deleteAt";
/**
* Remove all elements from an Array that match a {@link Predicate}.
*
* @mutation
*
* @example
* Remove all even numbers
* ```ts
* const array = [1, 2, 3];
*
* deleteIf(isEven)(array);
*
* console.log(array); // [1, 3]
* ```
*
* @typeParam T - the {@link Array} element type
* @param predicate
*/
export const deleteIf =
<T>(predicate: Predicate<[T, number]>) =>
(array: T[]) =>
array.forEach(
(element, index) => predicate(element, index) && deleteAt(index)(array)
);
|