const fs = require('fs'); // const inputArray = fs.readFileSync('sample.txt').toString().split("\n"); let inputArray = fs.readFileSync('input.txt').toString().split("\n"); let allInts = []; let sum = 0; // Part One for (i in inputArray) { const forwards = inputArray[i]; const backwards = inputArray[i].split("").reverse().join(""); let firstInt; let lastInt; for (j in forwards) { if (parseInt(forwards[j])) { firstInt = parseInt(forwards[j]); break; } } for (j in backwards) { if (parseInt(backwards[j])) { lastInt = parseInt(backwards[j]); break; } } allInts.push(parseInt(`${firstInt}${lastInt}`)); } sum = allInts.reduce((a, b) => a + b, 0); console.log(sum); // Part Two // inputArray = fs.readFileSync('sample2.txt').toString().split("\n"); allInts = []; for (i in inputArray) { let forwards = inputArray[i]; let needsParsed = true; while (needsParsed) { for (j in forwards) { if (forwards[j] === "o" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "one") { forwards = forwards.substring(0, j) + "1" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "t" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "two") { forwards = forwards.substring(0, j) + "2" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "t" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "three") { forwards = forwards.substring(0, j) + "3" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "f" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "four") { forwards = forwards.substring(0, j) + "4" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "f" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "five") { forwards = forwards.substring(0, j) + "5" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "s" && forwards.substring(j,parseInt(parseInt(j)+parseInt(3))) === "six") { forwards = forwards.substring(0, j) + "6" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "s" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "seven") { forwards = forwards.substring(0, j) + "7" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "e" && forwards.substring(j,parseInt(parseInt(j)+parseInt(5))) === "eight") { forwards = forwards.substring(0, j) + "8" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (forwards[j] === "n" && forwards.substring(j,parseInt(parseInt(j)+parseInt(4))) === "nine") { forwards = forwards.substring(0, j) + "9" + forwards.substring(parseInt(parseInt(j)+parseInt(1))); break; } else if (parseInt(j) === forwards.length - 1) { needsParsed = false; } } } backwards = forwards.split("").reverse().join(""); let firstInt; let lastInt; for (j in forwards) { if (parseInt(forwards[j])) { firstInt = parseInt(forwards[j]); break; } } for (j in backwards) { if (parseInt(backwards[j])) { lastInt = parseInt(backwards[j]); break; } } allInts.push(parseInt(`${firstInt}${lastInt}`)); } sum = allInts.reduce((a, b) => a + b, 0); console.log(sum); // functions