Skip to content
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
47 changes: 0 additions & 47 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,56 +1,9 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JS Exercise - 31 May 2018</title>
<link href="https://fonts.googleapis.com/css?family=Orbitron" rel="stylesheet">
<style>
body {
background-color: darkslategrey;
}

#clock {
font-family: 'Orbitron', sans-serif;
font-size: 5em;
color: green;
background-color: black;
width: 8em;
height: 3em;
line-height: 3em;
text-align: center;
margin: 1em auto;
border-radius: 2em;
}
</style>
</head>
<body>
<div id="clock"></div>
<script src="./script.js"></script>
<script>
var clocky = document.getElementById('clock');
var endTime = '10:15:00 AM';

clocky.innerHTML = new Date().toLocaleTimeString();

function beep() {
var snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");
snd.play();
};

function updateTime() {
var time = new Date().toLocaleTimeString();
clocky.innerHTML = time;
if (time === endTime) {
clearInterval(timer);
clocky.style.backgroundColor = 'red';
clocky.style.color = 'white';
beep();
};
};

var timer = setInterval(updateTime, 1000);
</script>
</body>
</html>
139 changes: 81 additions & 58 deletions script.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,12 @@
// Write your solution below.
// ====================================================================

/* --answer here

var secondNum = prompt("Give me another number!")
console.log(Math.abs(firstNum - secondNum))











*/

// ========================== Exercise 2 ==============================
// Prompt the user for a number, then console.log its ordinal version.
Expand All @@ -37,19 +31,8 @@
// Write your solution below
// ====================================================================














// method 1: use switch
// method 2 : determine the 2nd last value of the string



Expand All @@ -62,18 +45,18 @@
// =======================================================================


/* -- answer here

var userNum = parseInt(prompt("Give me a number from 0 to 10!"));
var genNum = Math.floor(Math.random() * 11);

if (userNum === genNum) {
console.log("Yay! Your number matched!")
} else {
console.log("Your numbers did not match! :( ")










*/


// ========================== Exercise 4 ===============================
Expand All @@ -91,18 +74,15 @@



// var possible = "ABCDEFGHIJKLMNOPQRSTUVabcdefghigklmnopqrstuvwxyz0123456789"
// var results = ""

// for (var i = 0; i < 6; i++) {
// var gen = possible[Math.floor(Math.random() * 62)];
// results += gen;
// }











// console.log(results);



Expand All @@ -115,25 +95,17 @@
// Write your solution below.
// ====================================================================

var testArray = [1, 2, 4, 8, 16, 32, 64, 128];
















// var testArray = [1, 2, 4, 8, 16, 32, 64, 128];
// var randomArray = [];

// // !!! ask, why the numbers come out so weirdly in the console
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I'm seeing the same output as you are, you're seeing something like [ [1], [4], [128], ... ] right? That's because each element in that output array is an array itself, consisting of a single element. That means that your last line, randomArray.push(randomArrayValue), is actually pushing arrays into the randomArray...

// for (i=0; testArray.length > 0; i++) {
// var randomArrayIndex = Math.floor(Math.random() * testArray.length);
// var randomArrayValue = testArray.splice(randomArrayIndex, 1);
// randomArray.push(randomArrayValue);
// }

// console.log(randomArray)


// ========================== Exercise 6 ==============================
Expand Down Expand Up @@ -168,17 +140,68 @@ var Phonebook = {
"Nelson Tan" : 63396565
};

// // ---- part 1
// var inputName = prompt("Give me a name: Jason, Amelie, Sing An, Ong Tng Kai, Nelson Tan")

// if (Phonebook[inputName]) {
// console.log(Phonebook[inputName]);
// } else {
// console.log("Not valid input");
// }

// // ---- part 2
// var inputName = prompt("Give me a name");
// var inputNum = parseInt(prompt("Give me a new num"));

// var eachName = Object.keys(Phonebook);

// for (i=0; i < eachName.length; i++) {
// if (eachName[i] === inputName) {
// //update number
// Phonebook[inputName] = inputNum;
// console.log(inputName + "\'s new number is " + inputNum);
// }
// }

// console.log(Phonebook);

// // ---- part 3

// var inputName = prompt("Give me a name");
// var inputNum = parseInt(prompt("Give me a new num"));

// var eachName = Object.keys(Phonebook);
// var eachNum = Object.values(Phonebook);

// for (i=0; i < eachName.length; i++) {
// if (eachName[i] !== inputName) {
// //update number
// Phonebook[inputName] = inputNum;
// console.log(inputName + "\'s number is " + inputNum);
// break;
// }
// }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The instructions inside the if{} block are going to be run multiple times, because the condition eachName[i] !== inputName is going to return true most of the time. Testing for conditions inside a loop is something that has to be handled with care.


// console.log(Phonebook);

// // ---- part 4

// var inputName = prompt("Give me a name: Jason, Amelie, Sing An, Ong Tng Kai, Nelson Tan");
// delete Phonebook[inputName];
// console.log(Phonebook);

// ---- bonus

var inputNum = parseInt(prompt("Give me a num"));

var eachName = Object.keys(Phonebook); // eachName = ["Jason", "Amelie", "Sing An", "Ong Tng Kai", "Nelson Tan"]
var eachNum = Object.values(Phonebook); // eachNum = [91216599, 64239839, 85404834, 94547788, 63396565]

for (i=0; i < eachNum.length; i++) {
if (eachNum[i] === inputNum) {
console.log(eachName[i]);
}
}



Expand Down