const numberTable: Record = { "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9" } const matchBackTable: Record = { // `eight` is started with spell e. `oneight` is one, eight. "one": 1, "two": 1, "three": 1, "four": 0, "five": 1, } function findFirstNumber(line: string) { for (let i = 0; i < line.length; i++) { const front = line.slice(i); } } function transformLine(line: string) { // find first number const re = /[0-9]+/; const firstNumber = line.match(re)?.[0]; console.log(line); console.log(firstNumber); return parseInt(firstNumber || ""); const numbersExp = line.matchAll(re); const numbers = [...numbersExp].map(n => { if (n[0] in numberTable) { return numberTable[n[0]]; } return n[0]; }); console.log(line) console.log(numbers); return parseInt(numbers[0] + numbers[numbers.length - 1]); } transformLine("eightwothree") // const input = await Deno.readTextFile("input.txt"); // const lines = input.split("\n"); // const numbers = lines.map(transformLine); // console.log(numbers.reduce((a, b) => a + b));