Merge d369469480
into 09f408a1b7
commit
fdbc5a2e05
@ -0,0 +1,13 @@
|
|||||||
|
export const countries = [
|
||||||
|
"Albania",
|
||||||
|
"Bolivia",
|
||||||
|
"Canada",
|
||||||
|
"Denmark",
|
||||||
|
"Ethiopia",
|
||||||
|
"Finland",
|
||||||
|
"Germany",
|
||||||
|
"Hungary",
|
||||||
|
"Ireland",
|
||||||
|
"Japan",
|
||||||
|
"Kenya",
|
||||||
|
];
|
@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Day 1</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script src="./level1.js"></script>
|
||||||
|
<script type="module" src="./main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,143 @@
|
|||||||
|
// Exercise: Level 1
|
||||||
|
console.log("Exercise: Level 1");
|
||||||
|
|
||||||
|
const countries = [
|
||||||
|
"Albania",
|
||||||
|
"Bolivia",
|
||||||
|
"Canada",
|
||||||
|
"Denmark",
|
||||||
|
"Ethiopia",
|
||||||
|
"Finland",
|
||||||
|
"Germany",
|
||||||
|
"Hungary",
|
||||||
|
"Ireland",
|
||||||
|
"Japan",
|
||||||
|
"Kenya",
|
||||||
|
];
|
||||||
|
|
||||||
|
const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
];
|
||||||
|
|
||||||
|
// Declare an empty array;
|
||||||
|
let emptyArray = [];
|
||||||
|
|
||||||
|
// Declare an array with more than 5 number of elements
|
||||||
|
let arrayWithMoreThanFiveElements = [1, 2, 3, 4, 5, 6];
|
||||||
|
|
||||||
|
// Find the length of your array
|
||||||
|
let arrayLength = arrayWithMoreThanFiveElements.length;
|
||||||
|
|
||||||
|
// Get the first item, the middle item and the last item of the array
|
||||||
|
let firstItem = arrayWithMoreThanFiveElements[0];
|
||||||
|
let middleItem = arrayWithMoreThanFiveElements[Math.floor(arrayLength / 2)];
|
||||||
|
let lastItem = arrayWithMoreThanFiveElements[arrayLength - 1];
|
||||||
|
|
||||||
|
// Declare an array called mixedDataTypes, put different data types in the array and find the length of the array. The array size should be greater than 5
|
||||||
|
let mixedDataTypes = [1, "a", true, 3.14, null, [1]];
|
||||||
|
|
||||||
|
// Declare an array variable name itCompanies and assign initial values Facebook, Google, Microsoft, Apple, IBM, Oracle and Amazon
|
||||||
|
let itCompanies = [
|
||||||
|
"Facebook",
|
||||||
|
"Google",
|
||||||
|
"Microsoft",
|
||||||
|
"Apple",
|
||||||
|
"IBM",
|
||||||
|
"Oracle",
|
||||||
|
"Amazon",
|
||||||
|
];
|
||||||
|
|
||||||
|
// Print the array using console.log()
|
||||||
|
console.log(itCompanies);
|
||||||
|
|
||||||
|
// Print the number of companies in the array
|
||||||
|
console.log(itCompanies.length);
|
||||||
|
|
||||||
|
// Print the first company, middle and last company
|
||||||
|
console.log(itCompanies[0]);
|
||||||
|
console.log(itCompanies[Math.floor(itCompanies.length / 2)]);
|
||||||
|
console.log(itCompanies[itCompanies.length - 1]);
|
||||||
|
|
||||||
|
// Print out each company
|
||||||
|
console.log(itCompanies.join(", "));
|
||||||
|
|
||||||
|
// Change each company name to uppercase one by one and print them out
|
||||||
|
console.log(itCompanies.map((company) => company.toUpperCase()));
|
||||||
|
|
||||||
|
// Print the array like as a sentence: Facebook, Google, Microsoft, Apple, IBM,Oracle and Amazon are big IT companies.
|
||||||
|
console.log(
|
||||||
|
itCompanies
|
||||||
|
.join(", ")
|
||||||
|
.concat(" and ")
|
||||||
|
.concat(itCompanies[itCompanies.length - 1])
|
||||||
|
);
|
||||||
|
|
||||||
|
// Check if a certain company exists in the itCompanies array. If it exist return the company else return a company is not found
|
||||||
|
console.log(
|
||||||
|
itCompanies.includes("Google") ? "Company found" : "Company not found"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Filter out companies which have more than one 'o' without the filter method
|
||||||
|
const companies = [
|
||||||
|
"Google",
|
||||||
|
"Microsoft",
|
||||||
|
"Facebook",
|
||||||
|
"Amazon",
|
||||||
|
"Oracle",
|
||||||
|
"Sony",
|
||||||
|
];
|
||||||
|
const filteredCompanies = [];
|
||||||
|
|
||||||
|
for (let company of companies) {
|
||||||
|
let oCount = 0;
|
||||||
|
|
||||||
|
// Efficiently count 'o' and break early if more than 1
|
||||||
|
for (let char of company) {
|
||||||
|
if (char.toLowerCase() === "o") {
|
||||||
|
oCount++;
|
||||||
|
if (oCount > 1) break; // Stop checking further if more than 1 'o' is found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oCount <= 1) {
|
||||||
|
filteredCompanies.push(company);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(filteredCompanies);
|
||||||
|
|
||||||
|
// Sort the array using sort() method
|
||||||
|
itCompanies.sort((a, b) => a.localeCompare(b));
|
||||||
|
|
||||||
|
// Reverse the array using reverse() method
|
||||||
|
itCompanies.reverse();
|
||||||
|
|
||||||
|
// Slice out the first 3 companies from the array
|
||||||
|
itCompanies.slice(0, 3);
|
||||||
|
|
||||||
|
// Slice out the last 3 companies from the array
|
||||||
|
itCompanies.slice(-3);
|
||||||
|
|
||||||
|
// Slice out the middle IT company or companies from the array
|
||||||
|
itCompanies.slice(
|
||||||
|
Math.floor(itCompanies.length / 2),
|
||||||
|
Math.floor(itCompanies.length / 2) + 2
|
||||||
|
);
|
||||||
|
|
||||||
|
// Remove the first IT company from the array
|
||||||
|
itCompanies.shift();
|
||||||
|
|
||||||
|
// Remove the middle IT company or companies from the array
|
||||||
|
itCompanies.splice(Math.floor(itCompanies.length / 2), 1);
|
||||||
|
|
||||||
|
// Remove the last IT company from the array
|
||||||
|
itCompanies.pop();
|
||||||
|
|
||||||
|
// Remove all IT companies
|
||||||
|
itCompanies.splice(0, itCompanies.length);
|
@ -0,0 +1,101 @@
|
|||||||
|
// Exercise: Level 2
|
||||||
|
console.log("Exercise: Level 2");
|
||||||
|
|
||||||
|
// Create a separate countries.js file and store the countries array into this file, create a separate file web_techs.js and store the webTechs array into this file. Access both file in main.js file
|
||||||
|
|
||||||
|
import { countries } from "./countries.js";
|
||||||
|
import { webTechs } from "./web_techs.js";
|
||||||
|
|
||||||
|
// First remove all the punctuations and change the string to array and count the number of words in the array
|
||||||
|
|
||||||
|
let text =
|
||||||
|
"I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.";
|
||||||
|
let textArray = text.replace(/[^\w\s]|_/g, "").split(" ");
|
||||||
|
let textCount = textArray.length;
|
||||||
|
console.log(textArray);
|
||||||
|
console.log(textCount);
|
||||||
|
// ["I", "love", "teaching", "and", "empowering", "people", "I", "teach", "HTML", "CSS", "JS", "React", "Python"]
|
||||||
|
|
||||||
|
// 13
|
||||||
|
// In the following shopping cart add, remove, edit items
|
||||||
|
|
||||||
|
const shoppingCart = ["Milk", "Coffee", "Tea", "Honey"];
|
||||||
|
// add 'Meat' in the beginning of your shopping cart if it has not been already added
|
||||||
|
if (!shoppingCart.includes("Meat")) shoppingCart.unshift("Meat");
|
||||||
|
|
||||||
|
// add Sugar at the end of you shopping cart if it has not been already added
|
||||||
|
if (!shoppingCart.includes("Sugar")) shoppingCart.push("Sugar");
|
||||||
|
|
||||||
|
// remove 'Honey' if you are allergic to honey
|
||||||
|
if (shoppingCart.includes("Honey"))
|
||||||
|
shoppingCart.splice(shoppingCart.indexOf("Honey"), 1);
|
||||||
|
|
||||||
|
// modify Tea to 'Green Tea'
|
||||||
|
shoppingCart[shoppingCart.indexOf("Tea")] = "Green Tea";
|
||||||
|
console.log(shoppingCart);
|
||||||
|
|
||||||
|
// In countries array check if 'Ethiopia' exists in the array if it exists print 'ETHIOPIA'. If it does not exist add to the countries list.
|
||||||
|
if (countries.includes("Ethiopia")) {
|
||||||
|
console.log("ETHIOPIA");
|
||||||
|
} else {
|
||||||
|
countries.push("Ethiopia");
|
||||||
|
}
|
||||||
|
|
||||||
|
// In the webTechs array check if Sass exists in the array and if it exists print 'Sass is a CSS preprocess'. If it does not exist add Sass to the array and print the array.
|
||||||
|
if (webTechs.includes("Sass")) {
|
||||||
|
console.log("Sass is a CSS preprocess");
|
||||||
|
} else {
|
||||||
|
webTechs.push("Sass");
|
||||||
|
console.log(webTechs);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Concatenate the following two variables and store it in a fullStack variable.
|
||||||
|
|
||||||
|
const frontEnd = ["HTML", "CSS", "JS", "React", "Redux"];
|
||||||
|
const backEnd = ["Node", "Express", "MongoDB"];
|
||||||
|
const fullStack = [...frontEnd, ...backEnd];
|
||||||
|
|
||||||
|
console.log(fullStack);
|
||||||
|
// ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"]
|
||||||
|
|
||||||
|
// Exercise: Level 3
|
||||||
|
// The following is an array of 10 students ages: js
|
||||||
|
const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24];
|
||||||
|
// - Sort the array and find the min and max age
|
||||||
|
ages.sort((a, b) => a - b);
|
||||||
|
console.log(ages);
|
||||||
|
// - Find the median age(one middle item or two middle items divided by two)
|
||||||
|
const middleIndex = Math.floor(ages.length / 2);
|
||||||
|
const medianAge =
|
||||||
|
ages.length % 2 !== 0
|
||||||
|
? ages[middleIndex]
|
||||||
|
: (ages[middleIndex - 1] + ages[middleIndex]) / 2;
|
||||||
|
|
||||||
|
console.log(medianAge);
|
||||||
|
// - Find the average age(all items divided by number of items)
|
||||||
|
const sumOfAges = ages.reduce((acc, age) => acc + age, 0);
|
||||||
|
const averageAge = sumOfAges / ages.length;
|
||||||
|
console.log(averageAge);
|
||||||
|
|
||||||
|
// - Find the range of the ages(max minus min)
|
||||||
|
const rangeOfAges = Math.max(...ages) - Math.min(...ages);
|
||||||
|
console.log(rangeOfAges);
|
||||||
|
|
||||||
|
// - Compare the value of (min - average) and (max - average), use abs() method
|
||||||
|
const minAvgDiff = Math.abs(Math.min(...ages) - averageAge / ages.length);
|
||||||
|
const maxAvgDiff = Math.abs(Math.max(...ages) - averageAge / ages.length);
|
||||||
|
console.log(minAvgDiff);
|
||||||
|
console.log(maxAvgDiff);
|
||||||
|
|
||||||
|
// 1.Slice the first ten countries from the countries array
|
||||||
|
console.log(countries.slice(0, 10));
|
||||||
|
|
||||||
|
// Find the middle country(ies) in the countries array
|
||||||
|
const middleIndexC = Math.floor(countries.length / 2);
|
||||||
|
console.log(middleIndexC);
|
||||||
|
|
||||||
|
// Divide the countries array into two equal arrays if it is even. If countries array is not even , one more country for the first half.
|
||||||
|
const firstHalf = countries.slice(0, middleIndexC + (countries.length % 2));
|
||||||
|
const secondHalf = countries.slice(middleIndexC + (countries.length % 2));
|
||||||
|
console.log(firstHalf);
|
||||||
|
console.log(secondHalf);
|
@ -0,0 +1,9 @@
|
|||||||
|
export const webTechs = [
|
||||||
|
"HTML",
|
||||||
|
"CSS",
|
||||||
|
"JavaScript",
|
||||||
|
"React",
|
||||||
|
"Redux",
|
||||||
|
"Node",
|
||||||
|
"MongoDB",
|
||||||
|
];
|
Loading…
Reference in new issue