advent-of-code-2023/src/utils.ts

14 lines
503 B
TypeScript

export const matchAllAndThen = (input: string, pattern: RegExp, callback: (value: string, index: number) => void) => {
[...input.matchAll(pattern)].map(match => {
if (match && match.index !== undefined) {
callback(match[0], match.index);
}
});
}
export const window = <T>(input: T[], size: number): T[][] => {
return input.reduce((windows, value, index) => {
if (index === input.length - size + 1) return windows;
return [...windows, input.slice(index, index + size)];
}, [] as T[][]);
}