From cb8c60744d71c69350317f31eda8424b158305e1 Mon Sep 17 00:00:00 2001 From: David Bouhaben Date: Thu, 20 Nov 2025 09:04:37 +0100 Subject: [PATCH 1/4] feat: implement name comparison logic and output results --- index.js | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 6b0fec3ad..1413c6597 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,75 @@ // Iteration 1: Names and Input - +const hacker1 = "BarabasA"; +console.log(`The driver's name is ${hacker1}`); +const hacker2 = "Baraba"; +console.log(`The navigator's name is ${hacker2}`); // Iteration 2: Conditionals +let isThisNameLonger = 0; +if (hacker1.length === hacker2.length) { + isThisNameLonger = `Wow, you both have equally long names, ${hacker1.length} characters!`; +} else if (hacker1.length > hacker2.length) { + isThisNameLonger = `The driver has the longest name, it has ${hacker1.length} characters`; +} else { + isThisNameLonger = `It seems that the navigator has the longest name, it has XX characters.`; +} +console.log(isThisNameLonger); // Iteration 3: Loops +let eachCharacters = ""; +for (let i = 0; i < hacker1.length; i++) { + eachCharacters += (hacker1[i] + " ").toUpperCase(); +} +console.log(eachCharacters); + +let reservedEachCharacters = ""; +for (let i = eachCharacters.length; i >= 0; i--) { + reservedEachCharacters += eachCharacters[i] - 1; +} + +// Hereeeee +// const normalOrder = [hacker1, hacker2]; +// let lexicographicOrder = Array.from(normalOrder[0]).sort(); +// let sortedLexicographicOrder = ""; +// let comparaison = ""; +// let comparaison2 = ""; +let result = ""; +for (let i = 0; i < Math.min(hacker1.length, hacker2.length); i++) { + if (hacker1[i] < hacker2[i]) { + result = "The driver's name goes first."; + break; + } else if (hacker1[i] > hacker2[i]) { + result = "Yo, the navigator goes first, definitely."; + break; + } + // If characters are equal, continue to next iteration (no else needed) +} + +// If we finished the loop without breaking, all compared characters were equal +// Now we need to check the lengths to determine the final result + +// Learn this +// console.log(hacker2.localeCompare(hacker1)) + +if (result === "") { + if (hacker1.length < hacker2.length) { + result = "The driver's name goes first."; + } else if (hacker1 > hacker2.length) { + result = "Yo, the navigator goes first, definitely."; + } else { + result = "What?! You both have the same name?"; + } +} + +console.log("Our result", result); + +// Solution without loop + +if (hacker1.localeCompare(hacker2) < 0) { + console.log(`${hacker1} The driver's name goes first.`); +} else if (hacker1.localeCompare(hacker2) > 0) { + console.log(`${hacker2} Yo, the navigator goes first, definitely.`); +} else { + console.log("What?! You both have the same name?"); +} \ No newline at end of file From db07202c2e75fbfe941896fb920db954372e860c Mon Sep 17 00:00:00 2001 From: David Bouhaben Date: Thu, 20 Nov 2025 09:18:12 +0100 Subject: [PATCH 2/4] fix: replace variable assignment with direct console logs for name length comparisons --- index.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 1413c6597..20f41d36b 100644 --- a/index.js +++ b/index.js @@ -5,17 +5,20 @@ const hacker2 = "Baraba"; console.log(`The navigator's name is ${hacker2}`); // Iteration 2: Conditionals -let isThisNameLonger = 0; if (hacker1.length === hacker2.length) { - isThisNameLonger = `Wow, you both have equally long names, ${hacker1.length} characters!`; + console.log( + `Wow, you both have equally long names, ${hacker1.length} characters!` + ); } else if (hacker1.length > hacker2.length) { - isThisNameLonger = `The driver has the longest name, it has ${hacker1.length} characters`; + console.log( + `The driver has the longest name, it has ${hacker1.length} characters` + ); } else { - isThisNameLonger = `It seems that the navigator has the longest name, it has XX characters.`; + console.log( + `It seems that the navigator has the longest name, it has ${hacker2.length} characters.` + ); } -console.log(isThisNameLonger); - // Iteration 3: Loops let eachCharacters = ""; for (let i = 0; i < hacker1.length; i++) { @@ -72,4 +75,4 @@ if (hacker1.localeCompare(hacker2) < 0) { console.log(`${hacker2} Yo, the navigator goes first, definitely.`); } else { console.log("What?! You both have the same name?"); -} \ No newline at end of file +} From 78702222977aec3edba639d9db6e7f4eeed9578f Mon Sep 17 00:00:00 2001 From: David Bouhaben Date: Thu, 20 Nov 2025 09:22:35 +0100 Subject: [PATCH 3/4] fix: correct logic for reversing characters and clean up unused code --- index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 20f41d36b..bad7149df 100644 --- a/index.js +++ b/index.js @@ -26,10 +26,12 @@ for (let i = 0; i < hacker1.length; i++) { } console.log(eachCharacters); -let reservedEachCharacters = ""; -for (let i = eachCharacters.length; i >= 0; i--) { - reservedEachCharacters += eachCharacters[i] - 1; +// 3.2: +let reversed = ""; +for (let i = hacker2.length - 1; i >= 0; i--) { + reversed += hacker2[i]; } +console.log("hooo", reversed); // Hereeeee // const normalOrder = [hacker1, hacker2]; From 398447e61ecd7d4521d5bbd2e45a6217996c288f Mon Sep 17 00:00:00 2001 From: David Bouhaben Date: Thu, 20 Nov 2025 09:54:11 +0100 Subject: [PATCH 4/4] fix: correct variable name and clean up unused code in loops --- index.js | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/index.js b/index.js index bad7149df..8420755ce 100644 --- a/index.js +++ b/index.js @@ -20,11 +20,11 @@ if (hacker1.length === hacker2.length) { } // Iteration 3: Loops -let eachCharacters = ""; +let spacdeName = ""; for (let i = 0; i < hacker1.length; i++) { eachCharacters += (hacker1[i] + " ").toUpperCase(); } -console.log(eachCharacters); +console.log(spacdeName); // 3.2: let reversed = ""; @@ -33,12 +33,7 @@ for (let i = hacker2.length - 1; i >= 0; i--) { } console.log("hooo", reversed); -// Hereeeee -// const normalOrder = [hacker1, hacker2]; -// let lexicographicOrder = Array.from(normalOrder[0]).sort(); -// let sortedLexicographicOrder = ""; -// let comparaison = ""; -// let comparaison2 = ""; +// 3.3: Lexicographic order comparison (manual loop solution) let result = ""; for (let i = 0; i < Math.min(hacker1.length, hacker2.length); i++) { if (hacker1[i] < hacker2[i]) { @@ -48,15 +43,9 @@ for (let i = 0; i < Math.min(hacker1.length, hacker2.length); i++) { result = "Yo, the navigator goes first, definitely."; break; } - // If characters are equal, continue to next iteration (no else needed) } -// If we finished the loop without breaking, all compared characters were equal -// Now we need to check the lengths to determine the final result - -// Learn this -// console.log(hacker2.localeCompare(hacker1)) - +// If all compared characters are equal, check string lengths if (result === "") { if (hacker1.length < hacker2.length) { result = "The driver's name goes first."; @@ -69,8 +58,7 @@ if (result === "") { console.log("Our result", result); -// Solution without loop - +// Alternative solution using localeCompare() method if (hacker1.localeCompare(hacker2) < 0) { console.log(`${hacker1} The driver's name goes first.`); } else if (hacker1.localeCompare(hacker2) > 0) {