Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vanilla JS answers Updated #7

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added answers/JS/.DS_Store
Binary file not shown.
Binary file added answers/JS/@imoris11/.DS_Store
Binary file not shown.
39 changes: 39 additions & 0 deletions answers/JS/@imoris11/01-name-concatenation.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<html>
<!--
Request the user's first name, last name and age.
Print out Welcome, <First-Name> [Son/Daughter] of <Last-Name> (<Year-Of-Birth>),
where Son is printed out if male, and Daughter if female

Variant 2
-->

<body>
<button onclick="getUserInfo()"> Run </button>
<h3 id="answer"><h3>

<script>
let getUserInfo = () => {
//Get user input
let firstName = prompt("Please enter your first name", "");
let lastName = prompt("Please enter your last name", "");
let age = prompt("Please enter your age", "");
let gender = prompt("Please enter your gender", "");

//Ensure all req. fields are submitted

if (firstName !== "" && lastName !== "" && age !== "" && gender !== "") {
gender = gender.toLowerCase();
//Set prefix for son/daughter (Doesn't handle wrong input ie neither male nor female)
let prefix = gender === "male" ? "Son" : "Daughter";

//Get year of birth
let currentYear = new Date().getFullYear();
let yearOfBirth = currentYear - Number(age);
//Show result on page
document.getElementById("answer").innerHTML =
`Welcome, ${firstName} ${prefix} of ${lastName} ( ${yearOfBirth} )`
}
}
</script>
</body>
</html>
44 changes: 44 additions & 0 deletions answers/JS/@imoris11/02-lottery.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<html>
<!--
Ask the user to press any key.

Display any 3 random space-separated digits between 0-9 e.g. 6 2 7.

If any of them is 7, output "Congratulations!".

Else, output "Try again! Better luck next time.".

Variant 3
-->

<body>
<i>You win if all numbers generated are even. </i>
<br />
<button onclick="generateRandomNumbers()"> Generate Numbers </button>
<h1 id="numbers"><h1>
<h3 id="answer"><h3>

<script>
let generateRandomNumbers = () => {
//Generate numbers
let numbers = [];
for (let i = 0; i<3; i++) {
let randomNumber = Math.floor(Math.random() * 10 );
numbers.push(randomNumber);
}

//Check how many evens
let evenNumbers = 0;
numbers.forEach((number)=> number % 2 === 0 && evenNumbers ++);

let message = evenNumbers === 3 ? " Congratulations! " : " Try again! Better luck next time.";
//Show result on page
document.getElementById("numbers").innerHTML =
`${numbers[0]} ${numbers[1]} ${numbers[2]}`

document.getElementById("answer").innerHTML =
`${message}`
}
</script>
</body>
</html>
35 changes: 35 additions & 0 deletions answers/JS/@imoris11/03-word-reverse.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<html>
<!--
Ask the user to enter a sentence, and output the reverse of each word.

E.g. I am a boy becomes I ma a yob.

Variant 2
-->

<body>
<br />
<button onclick="reverseSentence()"> Enter Sentence </button>
<h3 id="answer"><h3>

<script>
let reverseSentence = () => {
//Reverse sentence with es6 functions
let sentence = prompt("Enter sentence", "")
if (sentence !== ""){
/*
1. Split sentence into an array of words
2. Split each word to array of characters
3. Reverse the characters in each word array, join back characters
4. Join the string
A STRING IS AN ARRAY OF WORDS, WORDS ARE ARRAYS OF CHARACTERS
*/
sentence = sentence.split(' ').map((word) => word.split('').reverse().join('')).join(' ')
//Show result on page
document.getElementById("answer").innerHTML =
`${sentence}`
}
}
</script>
</body>
</html>
56 changes: 56 additions & 0 deletions answers/JS/@imoris11/04-type-in-reverse.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<html>
<!--
Output a random word. Ask the user to type in the reverse.

If the user is correct, output ✅

Else, output ❌

Repeat.
-->

<body>
<br />
<button onclick="generateWord()"> Generate A Word </button>
<h1 id="word"><h1>
<h3 id="answer"><h3>

<script>
let generateWord = () => {
//Pick a random word from array
let words = [
"metamorphosis",
"schizophrenia",
"nymphomaniac",
"papadopoulos",
"photosynthesis",
"mkhitarian",
"perpendicular",
"intraterrestial"
];

let randomNumber = Math.floor(Math.random() * 8);
let word = words[randomNumber];
//Show random word
document.getElementById("word").innerHTML =
`${word}`;

//Wait for DOM update
setTimeout(function () {
//Ask for user input
let userInput = prompt("Enter word in reverse", "")
//Determine if input is correct
if (userInput !== ""){
userInput = userInput.split('').reverse().join('')

let message = userInput === word ? "Correct" : "Wrong"
//Show result on page
document.getElementById("answer").innerHTML =
`${message}`
}
}, 10);

}
</script>
</body>
</html>
72 changes: 72 additions & 0 deletions answers/JS/@imoris11/05-temperature-unit-converstion.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<html>
<!--
1. Celsius to Fahrenheit
2. Fahrenheit to Celsius

Enter an option:
DOWNLOAD <emmet>
-->

<body>
<br />
<button id="chooseBtn" onclick="chooseOption()"> Choose an option </button>
<h3>1. Celcius to Fahreinheit</h3>
<h3>2. Fahrenheit to Celcius </h3>
<h3>3. Celcius to Kelvin </h3>
<h3>4. Kelvin to Celcius </h3>
<h3>5. Fahrenheit to Kelvin </h3>
<h3>6. Kelvin to Fahrenheit </h3>


<h1 id="answer"><h1>

<script>
let chooseOption = () => {
let option = prompt("Please choose an option", "");
if (Number(option)){
let degree = prompt("Please enter temperature", "")
convertTemp(Number(option), degree)
}
}

let convertTemp = (option, degree) => {
let d = 0;
switch (option) {
case 1:
//convert c to f
d = ((9/5) * degree) + 32;
document.getElementById("answer").innerHTML = `${degree} C is ${d.toFixed(2)} F`;
break;
case 2:
//convert f to c
d = (degree - 32) * 5/9;
document.getElementById("answer").innerHTML = `${degree} F is ${d.toFixed(2)} C`;
break;
case 3:
//convert c to k
d = Number(degree) + 273.15;
document.getElementById("answer").innerHTML = `${degree} C is ${d.toFixed(2)} K`;
break;
case 4:
//convert k to c
d = Number(degree) - 273.15;
document.getElementById("answer").innerHTML = `${degree} K is ${d.toFixed(2)} C`;
break;
case 5:
//convert f to k
d = (degree - 32) * 5/9 + 273.15;
document.getElementById("answer").innerHTML = `${degree} F is ${d.toFixed(2)} K`;
break;
case 6:
//convert k to f
d = (Number(degree) - 273.15) * (9/5) + 32;
document.getElementById("answer").innerHTML = `${degree} K is ${d.toFixed(1)} F`;
break;
default:
document.getElementById("answer").innerHTML = `Invalid option`

}
}
</script>
</body>
</html>
39 changes: 39 additions & 0 deletions answers/JS/@imoris11/06-multiplication-table.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<html>
<!--
Using a for/while loop, write a program that prints out a simple multiplication from 2 - 12.
-->

<body>
<button onclick="getUserInfo()"> Run </button>
<div id="answer"><div>
<script>
let showTimeTable = () => {
//Print 2-12
let breakNode = document.createElement("BR");
for (let i = 2; i<=12; i++) {
let node = document.createElement("SPAN");
let textNode = document.createTextNode(`${i}`);
node.appendChild(textNode);
node.style.padding = "18px";
document.getElementById("answer").appendChild(node);
document.getElementById("answer").appendChild(breakNode);
}
//Print Multiplication Table
for (let i = 2; i<=12; i++) {
let breakNode = document.createElement("BR");
for (let j = 2; j<=12; j++) {
let node = document.createElement("SPAN");
let textNode = document.createTextNode(`${j*i}`);
node.appendChild(textNode);
node.style.padding = "16px";
document.getElementById("answer").appendChild(node);
}
document.getElementById("answer").appendChild(breakNode);
}

}
showTimeTable();
// TODO: FIX SPACING
</script>
</body>
</html>
36 changes: 36 additions & 0 deletions answers/JS/@imoris11/09-rgb-color-generator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<html>
<!--
RGB Color Generator

Write a program that will output a random RGB color e.g. rgb(252, 160, 72).

Things to consider

Every RGB Color has 3 parts.

Red (R) a number between 0 and 255

Green (G) a number between 0 and 255

Blue (B) a number between 0 and 255
-->

<body>
<button onclick="generateColor()"> Generate RGB Color </button>
<h3 id="answer"><h3>

<script>
let generateColor = () => {
//Generate numbers
let color = [ Math.floor(Math.random() * 256 ),
Math.floor(Math.random() * 256 ),
Math.floor(Math.random() * 256 )]

//Show result on page
document.getElementById("answer").innerHTML =
` rgb(${color}) `
document.getElementById("answer").style.color = `rgb(${color})`
}
</script>
</body>
</html>
69 changes: 69 additions & 0 deletions answers/JS/@imoris11/10-hex-color-generator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<html>
<!--
RGB Color Generator

Write a program that will output a random RGB color e.g. rgb(252, 160, 72).

Things to consider

Every RGB Color has 3 parts.

Red (R) a number between 0 and 255

Green (G) a number between 0 and 255

Blue (B) a number between 0 and 255
-->

<body>
<button onclick="generateColor()"> Generate RGB Color </button>
<h3 id="answer"><h3>

<script>
let generateColor = () => {
//Generate numbers
let red = convertToHex(Math.floor(Math.random() * 256 ));
let green = convertToHex(Math.floor(Math.random() * 256 ));
let blue = convertToHex(Math.floor(Math.random() * 256 ));
//Show result on page
let color = red + green + blue;
document.getElementById("answer").innerHTML =
`#${color}`
document.getElementById("answer").style.color = `#${color}`
}

let switchHex = (dec) => {
switch (dec) {
case 10:
return 'A';
break;
case 11:
return 'B';
break;
case 12:
return 'C';
break;
case 13:
return 'D';
break;
case 14:
return 'E';
break;
case 15:
return 'F';
break;
default:
return dec;
}
}
let convertToHex = (dec) => {
let hex = "";
while (dec > 1) {
hex = switchHex(dec%16) + hex;
dec = Number(Math.floor(dec/16));
}
return hex;
}
</script>
</body>
</html>
Loading