parent
d0c066fcb9
commit
541e5bf798
@ -0,0 +1,23 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>30DaysOfJavaScript:External script</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- <script src="intro.js"></script> -->
|
||||||
|
<!-- <script src="level-1.js"></script> -->
|
||||||
|
<!-- <script type="module" src="level_2.js"></script> -->
|
||||||
|
<!-- <script type="module" src="level_3.js"></script> -->
|
||||||
|
<script type="module" src="object.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,141 @@
|
|||||||
|
// file is external source to index.html
|
||||||
|
// last thing in body
|
||||||
|
console.log('hello challenge');
|
||||||
|
// variables declared with let or var can be changed
|
||||||
|
let firstName = 'LSMarch';
|
||||||
|
firstName = 'greatest';
|
||||||
|
var lastName = 'Hacker';
|
||||||
|
lastName = 'ever';
|
||||||
|
console.log(`${firstName} ${lastName}`);
|
||||||
|
// variables declared with const cannot be changed
|
||||||
|
const PI = 3.14159;
|
||||||
|
// this won't diplsay and it errors out
|
||||||
|
//PI = 3.14;
|
||||||
|
console.log(PI);
|
||||||
|
|
||||||
|
const numbers = [0, 3, 6, 9, 12]; // array of numbers
|
||||||
|
const fruits = ['banana', 'apple', 'peach', 'orange']; // array of strings
|
||||||
|
// print array and it's length
|
||||||
|
console.log('Numbers:', numbers);
|
||||||
|
console.log('Number of numbers:', numbers.length);
|
||||||
|
console.log('Fruits:', fruits);
|
||||||
|
console.log('Number of fruits:', fruits.length);
|
||||||
|
// an array can have values of different types
|
||||||
|
const array = [
|
||||||
|
'LSMarch',
|
||||||
|
3,
|
||||||
|
false,
|
||||||
|
{ make: 'Chevy', model: 'Prism' },
|
||||||
|
{ skills: ['HTML', 'JavaScript', 'CSS', 'React', 'Java', 'Angular'] }
|
||||||
|
];
|
||||||
|
console.log(array);
|
||||||
|
|
||||||
|
let js = 'JavaScript'
|
||||||
|
// splits js into an array at each character
|
||||||
|
const charactersInJavaScript = js.split('');
|
||||||
|
console.log('Split a string:', charactersInJavaScript);
|
||||||
|
let companiesString = 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon';
|
||||||
|
// splits string at comma and returns array
|
||||||
|
const companies = companiesString.split(',');
|
||||||
|
console.log('Split a string at ",":', companies);
|
||||||
|
// can access each element in an array by their index.
|
||||||
|
// array index starts at 0
|
||||||
|
let firstFruit = fruits[0];
|
||||||
|
console.log("Call value at index 0 in fruits array", firstFruit);
|
||||||
|
let secondFruit = fruits[1];
|
||||||
|
console.log("Call value at index 0 in fruits array", secondFruit);
|
||||||
|
// last index can be be accessed as...
|
||||||
|
let lastIndex = fruits.length - 1;
|
||||||
|
lastFruit = fruits[lastIndex];
|
||||||
|
console.log("Call value at last index of fruits array", lastFruit);
|
||||||
|
// arrays are mutable and we can modify it
|
||||||
|
numbers[0] = 99;
|
||||||
|
numbers[1] = 120;
|
||||||
|
console.log("Modified numbers array:", numbers);
|
||||||
|
// methods to manipulate an array
|
||||||
|
const arr = Array();
|
||||||
|
// just an empty array
|
||||||
|
console.log("array created using Array constructor", arr);
|
||||||
|
const eightEmptyValues = Array(8);
|
||||||
|
console.log("Array of 8 indexes with constructor:", eightEmptyValues);
|
||||||
|
// creates an array iwth 8 element values with 'X'
|
||||||
|
const eightXValues = Array(8).fill('X');
|
||||||
|
console.log("Array of 8 indexes with value of 'X' with constructor:", eightXValues);
|
||||||
|
// concatenating two arrays
|
||||||
|
const firstList = [1, 2, 3];
|
||||||
|
const secondList = [4, 5, 6];
|
||||||
|
const thirdList = firstList.concat(secondList);
|
||||||
|
console.log("Concacted firstList and secondList:", thirdList);
|
||||||
|
// .length returns the length of the array
|
||||||
|
// indexOf return index of an element
|
||||||
|
console.log("Shows index of array element:", numbers.indexOf(12));
|
||||||
|
// if element is not in array returns -1
|
||||||
|
console.log("Shows index of array element:", numbers.indexOf(22));
|
||||||
|
// checking to see if something is in an array
|
||||||
|
let index = fruits.indexOf('apple');
|
||||||
|
if (index != -1) {
|
||||||
|
console.log('This fruit is in the array');
|
||||||
|
} else {
|
||||||
|
console.log('This fruit is not in the array');
|
||||||
|
}
|
||||||
|
// can also use ternary
|
||||||
|
index != -1 ? console.log('This fruit is in the array') : console.log('This fruit is not in the array')
|
||||||
|
let indexofAvocado = fruits.indexOf('avocado');
|
||||||
|
indexofAvocado != -1 ? console.log('This fruit is in the array') : console.log('This fruit is not in the array');
|
||||||
|
// lastIndexOf gives the index of the last item in the array
|
||||||
|
const newNums = [1, 2, 3, 4, 5, 3, 1, 2];
|
||||||
|
console.log('Last index of value in newNums:', newNums.lastIndexOf(2));
|
||||||
|
console.log('Last index of value in newNums:', newNums.lastIndexOf(6));
|
||||||
|
console.log('Last index of value in newNums:', newNums.lastIndexOf(1));
|
||||||
|
// include checks if element is in array and returns boolean
|
||||||
|
console.log('4 is in the number array:', numbers.includes(4));
|
||||||
|
console.log('9 is in the numbers array:', numbers.includes(9));
|
||||||
|
// Array.isArray checks to see if value is indeed an array
|
||||||
|
console.log('Numbers is an array:', Array.isArray(numbers));
|
||||||
|
const number = 100;
|
||||||
|
console.log('Number is an array', Array.isArray(number));
|
||||||
|
//toString converts array to string (no spaces)
|
||||||
|
console.log("Numbers array as string", numbers.toString());
|
||||||
|
// join is used to join elements to array. Argument passed will be joined
|
||||||
|
// in the array and return as a string;
|
||||||
|
const webTechs = ['HTML', 'JavaScript', 'CSS', 'React', 'Java', 'Angular'];
|
||||||
|
console.log("Joins webTechs array with comma and space", webTechs.join(', '));
|
||||||
|
// slice cuts out multiple items in a range. Takes 2 arguments,
|
||||||
|
// starting and ending posiion, excludes ending position
|
||||||
|
console.log("Slice():", numbers.slice());
|
||||||
|
console.log("Slice(0)", numbers.slice());
|
||||||
|
console.log("Slice(0, numbers.length)", numbers.slice(0, numbers.length));
|
||||||
|
console.log("Slice(1, 4", numbers.slice(1, 4));
|
||||||
|
// splice takes 3 arguments, starting position, number of items to be removed,
|
||||||
|
// and number of items to be added
|
||||||
|
const moreNumbers = [1, 2, 3, 4, 5, 6];
|
||||||
|
moreNumbers.splice()
|
||||||
|
console.log("Splice() removes all itmes:", moreNumbers.splice());
|
||||||
|
//moreNumbers.splice(0, 1)
|
||||||
|
console.log("Splice(0, 1) removes first item:", moreNumbers);
|
||||||
|
moreNumbers.splice(3, 3, 7, 8, 9)
|
||||||
|
console.log("removes 3 items and replaces 3 items", moreNumbers);
|
||||||
|
// push() adds to the end of an existing array
|
||||||
|
moreNumbers.push(10);
|
||||||
|
console.log("Push:", moreNumbers);
|
||||||
|
// pop() removes 1 item from the end of the array
|
||||||
|
moreNumbers.pop();
|
||||||
|
console.log("Pop:", moreNumbers);
|
||||||
|
// shift() removes 1 from the beginning of the array
|
||||||
|
moreNumbers.shift();
|
||||||
|
console.log("Shift:", moreNumbers);
|
||||||
|
// unshift() add to the beginning of the array
|
||||||
|
moreNumbers.unshift(1);
|
||||||
|
console.log("Unshift:", moreNumbers);
|
||||||
|
// reverses the order of the array
|
||||||
|
moreNumbers.reverse();
|
||||||
|
console.log("Reverse:", moreNumbers);
|
||||||
|
// sore() arranges array elements in ascending order.
|
||||||
|
webTechs.sort();
|
||||||
|
console.log("Sort:", webTechs);
|
||||||
|
// Array of arrays
|
||||||
|
const frontEnd = ["HTML", "CSS", "JavaScript", "Angular", "React", "Redux"];
|
||||||
|
const backEnd = ["Node", "Express", "SQL", "MongoDB", "Java", "Spring Boot"];
|
||||||
|
const fullStack = [frontEnd, backEnd];
|
||||||
|
// returns an array with 2 arrays
|
||||||
|
console.log("Array in array:", fullStack);
|
@ -0,0 +1,69 @@
|
|||||||
|
const exercise1_1 = [];
|
||||||
|
const exercise1_2 = [1, 2, 3, 4, 5, 6];
|
||||||
|
|
||||||
|
console.log(exercise1_2.length);
|
||||||
|
|
||||||
|
console.log(exercise1_2[0]);
|
||||||
|
|
||||||
|
console.log(exercise1_2[3]);
|
||||||
|
|
||||||
|
const lastIndex = exercise1_2.length - 1;
|
||||||
|
console.log(exercise1_2[lastIndex]);
|
||||||
|
|
||||||
|
const mixedDataTypes = [
|
||||||
|
'LSMarch',
|
||||||
|
5,
|
||||||
|
{ firstName: 'greatest', lastName: 'ever' },
|
||||||
|
['HTML', 'CSS', 'JavaScript'],
|
||||||
|
45,
|
||||||
|
'React'
|
||||||
|
];
|
||||||
|
|
||||||
|
const itCompanies = [
|
||||||
|
'Facebook',
|
||||||
|
'Google',
|
||||||
|
'Microsoft',
|
||||||
|
'Apple',
|
||||||
|
'IBM',
|
||||||
|
'Oracle',
|
||||||
|
'Amazon'
|
||||||
|
];
|
||||||
|
|
||||||
|
console.log(itCompanies);
|
||||||
|
console.log("IT Companies Length:", itCompanies.length);
|
||||||
|
console.log("First company:", itCompanies[0]);
|
||||||
|
console.log("Middle Company:", itCompanies[4]);
|
||||||
|
console.log("Last Company:", itCompanies[itCompanies.length - 1]);
|
||||||
|
|
||||||
|
for (let i = 0; i < itCompanies.length; i++) {
|
||||||
|
console.log(itCompanies[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < itCompanies.length; i++) {
|
||||||
|
console.log(itCompanies[i].toUpperCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(itCompanies.join(', ') + " are big IT companies");
|
||||||
|
|
||||||
|
let checkCompany = itCompanies.indexOf('IBM');
|
||||||
|
checkCompany = -1
|
||||||
|
? console.log('IBM is in the array')
|
||||||
|
: console.log('IBM is NOT in the array');
|
||||||
|
|
||||||
|
// for (let i = 0; i < itCompanies.length; i++) {
|
||||||
|
// if (!itCompanies[i].includes('oo')) {
|
||||||
|
// itCompanies.splice(3, i);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//console.log(itCompanies);
|
||||||
|
|
||||||
|
//console.log(itCompanies.sort());
|
||||||
|
//console.log(itCompanies.reverse());
|
||||||
|
|
||||||
|
console.log(itCompanies.slice(0, 3));
|
||||||
|
console.log(itCompanies.slice(4, 7));
|
||||||
|
console.log(itCompanies.slice(2, 5));
|
||||||
|
//console.log(itCompanies.splice(0, 1));
|
||||||
|
//console.log(itCompanies.splice(6, 1));
|
||||||
|
//console.log(itCompanies.splice(3, 1));
|
||||||
|
console.log(itCompanies.splice());
|
@ -0,0 +1,51 @@
|
|||||||
|
import countries from "./modules/countries.js";
|
||||||
|
import web_techs from "./modules/web_techs.js";
|
||||||
|
|
||||||
|
let text = 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.'
|
||||||
|
let textToSplitPeriod = text.split('.')
|
||||||
|
let textToString = textToSplitPeriod.toString();
|
||||||
|
let textTosplitComma = textToString.split(',');
|
||||||
|
textToString = textTosplitComma.toString();
|
||||||
|
let words = textToString.split(' ');
|
||||||
|
console.log('words:', words);
|
||||||
|
console.log(words.length);
|
||||||
|
|
||||||
|
const shoppingCart = [
|
||||||
|
'Milk', 'Coffee', 'Tea', 'Honey'
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
for (let i = 0; i < shoppingCart.length; i++) {
|
||||||
|
if (!shoppingCart.includes("Meat")) {
|
||||||
|
shoppingCart.unshift('Meat');
|
||||||
|
}
|
||||||
|
if (!shoppingCart.includes("Sugar")) {
|
||||||
|
shoppingCart.push("Sugar")
|
||||||
|
}
|
||||||
|
if (shoppingCart[i] == "Tea") {
|
||||||
|
shoppingCart[i] = "Green Tea"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(shoppingCart);
|
||||||
|
|
||||||
|
countries.forEach(country => {
|
||||||
|
if (country == "Ethiopia") {
|
||||||
|
console.log(country);
|
||||||
|
} else {
|
||||||
|
countries.push("Ethiopia");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
web_techs.forEach(tech => {
|
||||||
|
if (tech == "Sass") {
|
||||||
|
console.log("Sass is a CSS preprocess");
|
||||||
|
} else if (!web_techs.includes("Sass")) {
|
||||||
|
web_techs.push("Sass");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log(web_techs);
|
||||||
|
|
||||||
|
const frontEnd = ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'];
|
||||||
|
const backEnd = ['Node', 'Express', 'MongoDB'];
|
||||||
|
const fullStack = frontEnd.concat(backEnd);
|
||||||
|
console.log(fullStack);
|
@ -0,0 +1,221 @@
|
|||||||
|
import countries from "./modules/countries.js";
|
||||||
|
|
||||||
|
const ages = [
|
||||||
|
19,
|
||||||
|
22,
|
||||||
|
19,
|
||||||
|
24,
|
||||||
|
20,
|
||||||
|
25,
|
||||||
|
26,
|
||||||
|
24,
|
||||||
|
25,
|
||||||
|
24
|
||||||
|
];
|
||||||
|
|
||||||
|
const sortedAges = ages.sort();
|
||||||
|
console.log("Min age:", sortedAges[0]);
|
||||||
|
console.log("Max age:", sortedAges[sortedAges.length - 1]);
|
||||||
|
console.log("Median age:", sortedAges[4] / 2);
|
||||||
|
const initialValue = 0;
|
||||||
|
const reducedAges = ages.reduce((previousValue, currentValue) =>
|
||||||
|
previousValue + currentValue, initialValue);
|
||||||
|
console.log("Average age:", reducedAges / 2);
|
||||||
|
console.log("Age range:", sortedAges[sortedAges.length - 1] - sortedAges[0]);
|
||||||
|
const compareMin = (min, average) => {
|
||||||
|
return Math.abs(min - average);
|
||||||
|
}
|
||||||
|
const compareMax = (max, average) => {
|
||||||
|
return Math.abs(max - average);
|
||||||
|
}
|
||||||
|
console.log("Compare min:", compareMin(sortedAges[0], (reducedAges / 2)));
|
||||||
|
console.log("Compare max:", compareMax(sortedAges[sortedAges.length - 1], (reducedAges / 2)));
|
||||||
|
|
||||||
|
console.log(countries.slice());
|
||||||
|
|
||||||
|
if (countries.length % 2 != 0) {
|
||||||
|
console.log('Middle countries:', countries[5], 'and', countries[6])
|
||||||
|
}
|
||||||
|
|
||||||
|
const firstHalf = [];
|
||||||
|
const secondHalf = [];
|
||||||
|
if ((countries.length - 6) % 2 != 0) {
|
||||||
|
for (let i = 0; i < countries.length - 6; i++) {
|
||||||
|
firstHalf.push(countries[i]);
|
||||||
|
}
|
||||||
|
for (let i = countries.length - 6; i < countries.length; i++) {
|
||||||
|
secondHalf.push(countries[i])
|
||||||
|
}
|
||||||
|
};
|
||||||
|
firstHalf.push("Italy")
|
||||||
|
console.log(firstHalf.length, firstHalf)
|
||||||
|
console.log(secondHalf.length, secondHalf)
|
||||||
|
|
||||||
|
let userAgeInput = prompt("Enter your age: ");
|
||||||
|
let userAge = parseInt(userAgeInput);
|
||||||
|
let myAge = 31;
|
||||||
|
|
||||||
|
switch (true) {
|
||||||
|
case userAge > 16:
|
||||||
|
console.log("You are old enough to drive")
|
||||||
|
break;
|
||||||
|
case userAge < 16:
|
||||||
|
console.log(`"You must wait ${16 - userAge} years to drive`)
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userAge < myAge) {
|
||||||
|
console.log(`I am ${myAge - userAge} years older than you`)
|
||||||
|
} else {
|
||||||
|
console.log(`You are ${userAge - myAge} years older than me`)
|
||||||
|
}
|
||||||
|
|
||||||
|
let a = 4;
|
||||||
|
let b = 3;
|
||||||
|
|
||||||
|
a < b
|
||||||
|
? console.log(`${a} is less than ${b}`)
|
||||||
|
: console.log(`${b} is less than ${a}`)
|
||||||
|
|
||||||
|
switch (true) {
|
||||||
|
case userAge % 2 == 0:
|
||||||
|
console.log(`${userAge} is an even number`);
|
||||||
|
break;
|
||||||
|
case userAge % 2 != 0:
|
||||||
|
console.log(`${userAge} is an odd number`);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
let scoreInput = prompt('Score: ');
|
||||||
|
let studentScore = parseInt(scoreInput);
|
||||||
|
if (80 < studentScore && studentScore < 100) {
|
||||||
|
console.log(`Student receives an A`)
|
||||||
|
} else if (70 < studentScore && studentScore < 89) {
|
||||||
|
console.log(`Student receives a B`);
|
||||||
|
} else if (60 < studentScore && studentScore < 69) {
|
||||||
|
console.log(`Student receives a C`);
|
||||||
|
} else if (50 < studentScore && studentScore < 59) {
|
||||||
|
console.log(`Studnet receives a D`);
|
||||||
|
} else if (0 < studentScore && studentScore < 49) {
|
||||||
|
console.log(`Student receives an F`);
|
||||||
|
}
|
||||||
|
|
||||||
|
let day = prompt('What is the day today?').toLowerCase();
|
||||||
|
switch (day) {
|
||||||
|
case 'monday':
|
||||||
|
console.log(`${day} is a working day`);
|
||||||
|
break;
|
||||||
|
case 'tuesday':
|
||||||
|
console.log(`${day} is a working day`);
|
||||||
|
break;
|
||||||
|
case 'wednesday':
|
||||||
|
console.log(`${day} is a working day`);
|
||||||
|
break;
|
||||||
|
case 'thursday':
|
||||||
|
console.log(`${day} is a working day`);
|
||||||
|
break;
|
||||||
|
case 'friday':
|
||||||
|
console.log(`${day} is a working day`);
|
||||||
|
break;
|
||||||
|
case 'saturday':
|
||||||
|
console.log(`${day} is a weekend`);
|
||||||
|
break;
|
||||||
|
case 'sunday':
|
||||||
|
console.log(`${day} is a weekend`);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log(`Enter a valid day`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const month = prompt("Enter a month: ").toLowerCase();
|
||||||
|
const leapYearInput = prompt("Is it a leap year?").toLocaleLowerCase();
|
||||||
|
if (leapYearInput == 'yes') {
|
||||||
|
switch (month) {
|
||||||
|
case 'january':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'feburary':
|
||||||
|
console.log(`${month} has 29 days`);
|
||||||
|
break;
|
||||||
|
case 'march':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'april':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'may':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'june':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'july':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'august':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'september':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'october':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'november':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'december':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log(`Enter a month`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (month) {
|
||||||
|
case 'january':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'feburary':
|
||||||
|
console.log(`${month} has 28 days`);
|
||||||
|
break;
|
||||||
|
case 'march':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'april':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'may':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'june':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'july':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'august':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'september':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'october':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
case 'november':
|
||||||
|
console.log(`${month} has 30 days`);
|
||||||
|
break;
|
||||||
|
case 'december':
|
||||||
|
console.log(`${month} has 31 days`);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log(`Enter a month`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
export const countries = [
|
||||||
|
'Albania',
|
||||||
|
'Bolivia',
|
||||||
|
'Canada',
|
||||||
|
'Denmark',
|
||||||
|
'Ethiopia',
|
||||||
|
'Finland',
|
||||||
|
'Germany',
|
||||||
|
'Hungary',
|
||||||
|
'Ireland',
|
||||||
|
'Japan',
|
||||||
|
'Kenya',
|
||||||
|
]
|
||||||
|
|
||||||
|
export default countries
|
@ -0,0 +1,11 @@
|
|||||||
|
export const web_techs = [
|
||||||
|
'HTML',
|
||||||
|
'CSS',
|
||||||
|
'JavaScript',
|
||||||
|
'React',
|
||||||
|
'Redux',
|
||||||
|
'Node',
|
||||||
|
'MongoDB'
|
||||||
|
]
|
||||||
|
|
||||||
|
export default web_techs
|
@ -0,0 +1,332 @@
|
|||||||
|
|
||||||
|
const dog = {};
|
||||||
|
console.log(dog);
|
||||||
|
dog.name = 'Spot';
|
||||||
|
dog.legs = 4;
|
||||||
|
dog.color = 'spotted';
|
||||||
|
dog.age = 4;
|
||||||
|
dog.bark = function () {
|
||||||
|
return 'woof woof';
|
||||||
|
};
|
||||||
|
console.log(dog.name);
|
||||||
|
console.log(dog.legs);
|
||||||
|
console.log(dog.color);
|
||||||
|
console.log(dog.age);
|
||||||
|
console.log(dog.bark());
|
||||||
|
dog.breed = 'Dalmation';
|
||||||
|
dog.getDogInfo = function () {
|
||||||
|
return `Hi! My name is ${this.name}! I am ${this.age} years old!`
|
||||||
|
};
|
||||||
|
console.log(dog.getDogInfo())
|
||||||
|
|
||||||
|
const users = {
|
||||||
|
Alex: {
|
||||||
|
email: 'alex@alex.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript'],
|
||||||
|
age: 20,
|
||||||
|
isLoggedIn: false,
|
||||||
|
points: 30
|
||||||
|
},
|
||||||
|
Asab: {
|
||||||
|
email: 'asab@asab.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'],
|
||||||
|
age: 25,
|
||||||
|
isLoggedIn: false,
|
||||||
|
points: 50
|
||||||
|
},
|
||||||
|
Brook: {
|
||||||
|
email: 'daniel@daniel.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'],
|
||||||
|
age: 30,
|
||||||
|
isLoggedIn: true,
|
||||||
|
points: 50
|
||||||
|
},
|
||||||
|
Daniel: {
|
||||||
|
email: 'daniel@alex.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'Python'],
|
||||||
|
age: 20,
|
||||||
|
isLoggedIn: false,
|
||||||
|
points: 40
|
||||||
|
},
|
||||||
|
John: {
|
||||||
|
email: 'john@john.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'],
|
||||||
|
age: 20,
|
||||||
|
isLoggedIn: true,
|
||||||
|
points: 50
|
||||||
|
},
|
||||||
|
Thomas: {
|
||||||
|
email: 'thomas@thomas.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'React'],
|
||||||
|
age: 20,
|
||||||
|
isLoggedIn: false,
|
||||||
|
points: 40
|
||||||
|
},
|
||||||
|
Paul: {
|
||||||
|
email: 'paul@paul.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'],
|
||||||
|
age: 20,
|
||||||
|
isLoggedIn: false,
|
||||||
|
points: 40
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(users.Alex.skills.length);
|
||||||
|
console.log(users.Asab.skills.length);
|
||||||
|
console.log(users.Brook.skills.length);
|
||||||
|
console.log(users.Daniel.skills.length);
|
||||||
|
console.log(users.John.skills.length);
|
||||||
|
console.log(users.Thomas.skills.length);
|
||||||
|
console.log(users.Paul.skills.length);
|
||||||
|
|
||||||
|
|
||||||
|
let usersLoggedIn = 0;
|
||||||
|
let pointsOver50 = 0;
|
||||||
|
if (users.Alex.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.Asab.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.Brook.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.Daniel.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.John.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.Thomas.isLoggedIn) {
|
||||||
|
usersLoggedIn++;
|
||||||
|
}
|
||||||
|
if (users.Alex.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
if (users.Asab.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
if (users.Brook.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
if (users.Daniel.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
if (users.John.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
if (users.Thomas.points >= 50) {
|
||||||
|
pointsOver50++;
|
||||||
|
}
|
||||||
|
console.log(usersLoggedIn)
|
||||||
|
console.log(pointsOver50)
|
||||||
|
|
||||||
|
// MongoDB, Express, React, Node
|
||||||
|
|
||||||
|
let mernDevs = 0;
|
||||||
|
if (users.Asab.skills.includes('MongoDB')
|
||||||
|
&& users.Asab.skills.includes('Express')
|
||||||
|
&& users.Asab.skills.includes('React')
|
||||||
|
&& users.Asab.skills.includes('Node'))
|
||||||
|
mernDevs++;
|
||||||
|
if (users.Alex.skills.includes('MongoDB')
|
||||||
|
&& users.Alex.skills.includes('Express')
|
||||||
|
&& users.Alex.skills.includes('React')
|
||||||
|
&& users.Alex.skills.includes('Node'))
|
||||||
|
mernDevs++;
|
||||||
|
|
||||||
|
console.log(mernDevs);
|
||||||
|
|
||||||
|
users.Libby = {
|
||||||
|
email: 'lsmarchetti01@gmail.com',
|
||||||
|
skills: ['HTML', 'CSS', 'JavaScript', 'TypeScript', 'Angular', 'React',
|
||||||
|
'SQL', 'MongoDB', 'Express', 'Java', 'Springboot', 'Node'],
|
||||||
|
age: 31,
|
||||||
|
isLoggedIn: true,
|
||||||
|
points: 60
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(users.Libby);
|
||||||
|
|
||||||
|
const entries = Object.entries(users)
|
||||||
|
console.log(entries)
|
||||||
|
|
||||||
|
const countries2 = {
|
||||||
|
USA: {
|
||||||
|
capital: 'Washington DC',
|
||||||
|
population: 1000,
|
||||||
|
language: ['English', 'Spanish', 'Node']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(countries2.USA);
|
||||||
|
|
||||||
|
const personAccount = {
|
||||||
|
firstName: 'Bob',
|
||||||
|
lastName: 'Bobert',
|
||||||
|
incomes: [53, 100, 98, 34],
|
||||||
|
expenses: [5, 66, 100],
|
||||||
|
totalIncome: function (incomes) {
|
||||||
|
const initial = 0;
|
||||||
|
let total = incomes.reduce((previous, current) =>
|
||||||
|
previous + current, initial
|
||||||
|
)
|
||||||
|
return total;
|
||||||
|
},
|
||||||
|
totalExpense: function (expenses) {
|
||||||
|
const initial = 0;
|
||||||
|
let total = expenses.reduce((previous, current) =>
|
||||||
|
previous + current, initial
|
||||||
|
)
|
||||||
|
return total;
|
||||||
|
},
|
||||||
|
addIncome: function (income) {
|
||||||
|
this.incomes.push(income);
|
||||||
|
},
|
||||||
|
addExpense: function (expense) {
|
||||||
|
this.expenses.push(expense)
|
||||||
|
},
|
||||||
|
accountBalance: function () {
|
||||||
|
let balance = this.totalIncome(this.incomes) - this.totalExpense(this.expenses)
|
||||||
|
return balance;
|
||||||
|
},
|
||||||
|
accountInfo: function () {
|
||||||
|
console.log(`${this.firstName} ${this.lastName}, your account balance is
|
||||||
|
${this.accountBalance()}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(personAccount.totalIncome(personAccount.incomes))
|
||||||
|
console.log(personAccount.totalExpense(personAccount.expenses))
|
||||||
|
personAccount.accountInfo();
|
||||||
|
|
||||||
|
const usersArr = [
|
||||||
|
{
|
||||||
|
_id: 'ab12ex',
|
||||||
|
username: 'Alex',
|
||||||
|
email: 'alex@alex.com',
|
||||||
|
password: '123123',
|
||||||
|
createdAt: '08/01/2020 9:00 AM',
|
||||||
|
isLoggedIn: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'fg12cy',
|
||||||
|
username: 'Asab',
|
||||||
|
email: 'asab@asab.com',
|
||||||
|
password: '123456',
|
||||||
|
createdAt: '08/01/2020 9:30 AM',
|
||||||
|
isLoggedIn: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'zwf8md',
|
||||||
|
username: 'Brook',
|
||||||
|
email: 'brook@brook.com',
|
||||||
|
password: '123111',
|
||||||
|
createdAt: '08/01/2020 9:45 AM',
|
||||||
|
isLoggedIn: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'eefamr',
|
||||||
|
username: 'Martha',
|
||||||
|
email: 'martha@martha.com',
|
||||||
|
password: '123222',
|
||||||
|
createdAt: '08/01/2020 9:50 AM',
|
||||||
|
isLoggedIn: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'ghderc',
|
||||||
|
username: 'Thomas',
|
||||||
|
email: 'thomas@thomas.com',
|
||||||
|
password: '123333',
|
||||||
|
createdAt: '08/01/2020 10:00 AM',
|
||||||
|
isLoggedIn: false,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const userToAdd = {
|
||||||
|
_id: 'afwogf',
|
||||||
|
username: 'bob',
|
||||||
|
email: 'bob@bob.com',
|
||||||
|
passowrd: '5544234'
|
||||||
|
};
|
||||||
|
|
||||||
|
const userNotToAdd = {
|
||||||
|
_id: 'ghderc',
|
||||||
|
username: 'Thomas',
|
||||||
|
email: 'thomas@thomas.com',
|
||||||
|
password: '123333',
|
||||||
|
createdAt: '08/01/2020 10:00 AM',
|
||||||
|
isLoggedIn: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
const signUp = (newUser) => {
|
||||||
|
let userExists = false;
|
||||||
|
usersArr.forEach(existingUser => {
|
||||||
|
if (newUser._id == existingUser._id) {
|
||||||
|
console.log('User already exists');
|
||||||
|
userExists = true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (!userExists) {
|
||||||
|
console.log('User added');
|
||||||
|
usersArr.push(newUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
signUp(userToAdd)
|
||||||
|
console.log(usersArr)
|
||||||
|
|
||||||
|
const signIn = (user) => {
|
||||||
|
user.isLoggedIn = true;
|
||||||
|
console.log(user.isLoggedIn)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const products = [
|
||||||
|
{
|
||||||
|
_id: 'eedfcf',
|
||||||
|
name: 'mobile phone',
|
||||||
|
description: 'Huawei Honor',
|
||||||
|
price: 200,
|
||||||
|
ratings: [
|
||||||
|
{ userId: 'fg12cy', rate: 5 },
|
||||||
|
{ userId: 'zwf8md', rate: 4.5 },
|
||||||
|
],
|
||||||
|
likes: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'aegfal',
|
||||||
|
name: 'Laptop',
|
||||||
|
description: 'MacPro: System Darwin',
|
||||||
|
price: 2500,
|
||||||
|
ratings: [],
|
||||||
|
likes: ['fg12cy'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: 'hedfcg',
|
||||||
|
name: 'TV',
|
||||||
|
description: 'Smart TV: Procaster',
|
||||||
|
price: 400,
|
||||||
|
ratings: [{ userId: 'fg12cy', rate: 5 }],
|
||||||
|
likes: ['fg12cy'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const rateProduct = (user, product) => {
|
||||||
|
for (let i = 0; i < products.length; i++) {
|
||||||
|
if (product._id == products[i]._id) {
|
||||||
|
product.ratings.push({ userId: user._id, rate: 1 });
|
||||||
|
console.log(products[i].ratings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rateProduct(userNotToAdd, products[1]);
|
||||||
|
|
||||||
|
const averageRating = (product) => {
|
||||||
|
const initial = 0;
|
||||||
|
console.log(average)
|
||||||
|
}
|
||||||
|
|
||||||
|
averageRating(products[0])
|
Loading…
Reference in new issue