-
Notifications
You must be signed in to change notification settings - Fork 5.8k
/
Copy pathindex.js
56 lines (49 loc) · 1.82 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Iteration 1: Names and Input
let hacker1 = "John";
console.log(`The driver's name is ${hacker1}`);
let hacker2 = "Jane";
console.log(`The navigator's name is ${hacker2}`);
// Iteration 2: Conditionals
if (hacker1.length > hacker2.length) {
console.log(
`The driver has the longest name, it has ${hacker1.length} characters.`
);
} else if (hacker1.length < hacker2.length) {
console.log(
`It seems that the navigator has the longest name, it has ${hacker2.length} characters.`
);
} else {
console.log(
`Wow, you both have equally long names, ${hacker1.length} characters!`
);
}
// Iteration 3: Loops
// 3.1 Driver's name in uppercase and separated by space
console.log(hacker1.toUpperCase().split("").join(" "));
// 3.2 Navigator's name in reverse order
console.log(hacker2.split("").reverse().join(""));
// 3.3 Lexicographic order
if (hacker1 < hacker2) {
console.log("The driver's name goes first.");
} else if (hacker1 > hacker2) {
console.log("Yo, the navigator goes first, definitely.");
} else {
console.log("What?! You both have the same name?");
}
// Bonus 1: Word count and 'et' occurrences
let longText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam et sapien et libero dapibus.`;
let wordCount = longText.split(/\s+/).length;
let etCount = (longText.match(/\b[Ee]t\b/g) || []).length;
console.log(`Word count: ${wordCount}`);
console.log(`'Et' count: ${etCount}`);
// Bonus 2: Palindrome check
let phraseToCheck = "A man, a plan, a canal, Panama!";
let cleanedPhrase = phraseToCheck.toLowerCase().replace(/[^a-z0-9]/g, "");
let isPalindrome = true;
for (let i = 0; i < cleanedPhrase.length / 2; i++) {
if (cleanedPhrase[i] !== cleanedPhrase[cleanedPhrase.length - 1 - i]) {
isPalindrome = false;
break;
}
}
console.log(isPalindrome ? "It's a palindrome!" : "It's not a palindrome.");