Надо посмотреть нормальные решения. Кидай свое 👍
```javascript
const input = schematic.split("\n");
const n = input.length
const m = input[0].length
const gears = {}
for (let i = 0; i < n; i++) {
const numRegExp = /\d+/g;
const currLine = input[i];
let match = numRegExp.exec(currLine)
while (match) {
const { 0: num, index } = match
const startIndex = Math.max(index - 1, 0);
const endIndex = Math.min(index + 1 + num.length, m);
for (let j = i - 1; j <= i + 1; j++) {
for (let k = startIndex; k < endIndex; k++) {
if (input[j]?.[k] === '*') {
const key = `${j}-${k}`
gears[key] = (gears[key] ?? []).concat(+num)
}
}
}
match = numRegExp.exec(currLine)
}
}
console.log(
Object.values(gears)
.filter(x => x.length == 2)
.map(x => x.reduce((a, b) => a * b))
.reduce((a, b) => a + b)
);```