You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

331 lines
14 KiB

console.log(countries)
//Exercises Level 1
//Exercise 1 -- Declares an empty array
var emptyArray = [];
//Exercise 2 -- Declare an array with more than 5 elements
var names = ["Brendan", "Jacob", "Chloe", "Katherine", "Nicole", "Sienna"];
//Exercise 3 -- Find the length of your array in #2 and prints it to console
var lengthOfArray = names.length
console.log(`Length of names array is: ${lengthOfArray}`);
//Exercise 4 -- Gets the first, middle, and last item of the array from exercise 3 and print the result to console
var firstElement = names[0];
var middleElement;
console.log(`First element: ${firstElement}`);
(names.length%2==0)
?console.log(`Middle elements are ${names[Math.floor((names.length-1)/2)]} and ${names[Math.ceil((names.length-1)/2)]}`) //value is true
:console.log(`${names[((names.length-1)/2)]}`); //value is false
var lastElement = names[names.length-1];
console.log(`Last element: ${lastElement}`);
//Exercise 5 -- 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
var mixedDataTypes = [1, 2, 3, "myString", "yourString", true, false];
console.log(`Length of mixedDataTypes is ${mixedDataTypes.length}`);
//Exercise 6 -- Declares an array named itCompanies and assigned initial values Facebook, Google, Microsoft, Apple, IBM, Oracle and Amazon
var itCompanies = ["Facebook","Google","Microsoft","Apple","IBM","Oracle","Amazon"];
//Exercise 7 -- Prints the array using console.log()
console.log(itCompanies);
//Exercise 8 -- Prints the number of companies in the itCompanies array
console.log(`Number of itCompanies is ${itCompanies.length}`);
//Exercise 9 -- Prints the first company, middle and last company (from itCompanies)
var first = itCompanies[0];
var middle;
(itCompanies.length%2==0)
?console.log(`Middle elements are ${itCompanies[Math.floor((itCompanies.length-1)/2)]} and ${itCompanies[Math.ceil((itCompanies.length-1)/2)]}`) //value is true
:console.log(`${itCompanies[((itCompanies.length-1)/2)]}`); //value is false
var last = itCompanies[itCompanies.length-1];
//Exercise 10 -- Prints out each company
for(var i=0;i<itCompanies.length;i++)
console.log(itCompanies[i]);
//Exercise 11 -- Changes each company name to uppercase one by one and print them out
var uppercaseITCompanies = [];
for(var v=0; v<itCompanies.length; v++)
{
uppercaseITCompanies[v] = itCompanies[v].toUpperCase();
}
console.log(itCompanies.join(", "));
//Exercise 12 -- Prints the array like as a sentence: Facebook, Google, Microsoft, Apple, IBM, Oracle and Amazon are big IT companies.
console.log(`${itCompanies.join(", ")} are big IT companies`);
//Exercise 13 -- Checks to if a certain company exists in the itCompanies array.
//If it exists return the company else returns the company is not found
function searchStringInArray (str, strArray)
{
for (var j=0; j<strArray.length; j++)
{
if ((strArray[j]).toLowerCase().match(str.toLowerCase()))
return j;
}
return -1;
}
var userInput = prompt("Enter a company: ");
userInput = userInput.toLowerCase();
console.log(`Enter a company: ${userInput}`);
var tempValue = searchStringInArray(userInput, itCompanies);
if(tempValue>=0)
console.log(`${itCompanies[tempValue]}`);
else
console.log('The company is not found');
//Exercise 14 -- Filter out companies which have more than one 'o' without the filter method
var tempItCompanies = [];
var filterCounter = 0;
for(var a=0; a<itCompanies.length; a++) //Searches through each index in itCompanies array
{
filterCounter = 0;
for(var c=0; c< itCompanies[a].length; c++) //Searches through each letter of each word in itCompanies array
{
if(itCompanies[a].charAt(c).toLowerCase() == 'o')
filterCounter = filterCounter +1;
}
if(filterCounter<=1)
tempItCompanies.push(itCompanies[a]);
}
itCompanies = tempItCompanies
console.log(itCompanies);
//Exercise 15 -- Sort the array using sort() method and prints the result to console
itCompanies.sort();
console.log(`Sorted itCompanies array: ${itCompanies}`);
//Exercise 16 -- Reverse the array using reverse() method and prints the result to console
itCompanies.reverse();
console.log(`Reversed itCompanies array: ${itCompanies}`);
//Exercise 17 -- Slice out the first 3 companies from the array and prints the result to console
console.log(itCompanies.slice(0,3));
//Exercise 18 -- Slice out the last 3 companies from the array and prints the result to console
console.log(itCompanies.slice(itCompanies.length-3,itCompanies.length));
//Exercise 19 -- Slice out the middle IT company or companies from the array and prints the result to console
if((itCompanies.length % 2) == 0)
{
var Variable1 = (Math.floor(itCompanies.length/2))-1;
var Variable2 = (Math.ceil(itCompanies.length/2))+1;
console.log(Variable1);
console.log(Variable2);
var tempVariable1 = itCompanies.slice(0,Variable1);
var tempVariable2 = itCompanies.slice(Variable2, itCompanies.length)
tempVariable1 = tempVariable1.concat(tempVariable2);
console.log(tempVariable1);
}
else
{
var Variable1 = (Math.floor(itCompanies.length/2));
var Variable2 = (Math.ceil(itCompanies.length/2));
var tempVariable1 = itCompanies.slice(0,Variable1);
var tempVariable2 = itCompanies.slice(Variable2, itCompanies.length)
tempVariable1 = tempVariable1.concat(tempVariable2);
console.log(tempVariable1)
}
//Exercise 20 -- Removes the first IT company from the array and prints the result to console
console.log(`Splicing first element ${itCompanies.splice(0,1)} from itCompanies array`);
console.log(itCompanies);
//Exercise 21 -- Remove the middle IT company or companies from the array and prints the result to console
console.log(itCompanies);
if (itCompanies.length % 2 == 0)
{
var string1 = itCompanies.slice(0,(Math.floor(itCompanies.length)/2)-1);
console.log((Math.floor(itCompanies.length)/2)-1);
var string2 = itCompanies.slice((Math.ceil(itCompanies.length)/2)+1);
string2 = string2.toString();
string1.push(string2);
console.log(string1);
}
else
{
var string1 = itCompanies.slice(0, Math.floor((itCompanies.length-1)/2));
console.log(string1);
var string2 = itCompanies.slice( (Math.floor(itCompanies.length/2)+1),(Math.ceil(itCompanies.length/2)+1));
string2 = string2.toString();
string1.push(string2);
console.log(string1);
itCompanies = string1;
}
//Exercise 22 -- Remove the last IT company from the array and prints the result to console
console.log(`Before removing last company from itCompanies array ${itCompanies}`);
itCompanies.pop();
console.log(`After removing last company from itCompanies array ${itCompanies}`);
//Exercise 23 -- Removes all IT companies from itCompanies array and prints the result to console
itCompanies = [];
console.log(`${itCompanies}`);
//Exercises Level 2
//Exercise 1 -- Create a separate countries.js file and store the countries array in to this file
//create a separate file web_techs.js and store the webTechs array in to this file. Access both files in main.js file
console.log(countries);
console.log(webTechs);
//Exercise 2 -- 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.';
text = text.replace(/[,.!?]/g,"");
var newArray = text.split(" ");
console.log(newArray);
console.log(`Length of text array: ${newArray.length}`);
//Exercise 3 -- 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
var tempString = shoppingCart.toString();
if(!tempString.includes('Meat'))
shoppingCart.unshift('Meat');
console.log(shoppingCart);
//add Sugar at the end of you shopping cart if it has not been already added
tempString = shoppingCart.toString();
if(!tempString.includes('Sugar'))
shoppingCart.push('Sugar');
//remove 'Honey' if you are allergic to honey
//I am not allergic to honey, so I did not remove from array
//modify Tea to 'Green Tea'
var teaIndex = shoppingCart.indexOf('Tea');
shoppingCart[teaIndex] = 'Green Tea';
console.log(shoppingCart);
//Exercise 4 -- 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.
//Uses searchStringInArray function from Exercises Level 1, Exercise 13
var tempIndex = searchStringInArray('Ethiopia', countries);
if(tempIndex>=0)
console.log(`${(countries[tempIndex]).toUpperCase()}`); //Prints country if found in countries array
else
{
countries.push('Ethiopia'); //Adds to end of array if not found
console.log(countries);
}
//Exercise 5 -- 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.
//Uses searchStringInArray function from Exercises Level 1, Exercise 13 and tempIndex from Exercises Level 2, Exercise 4
tempIndex = searchStringInArray('Sass', webTechs);
if(tempIndex>=0)
console.log('Sass is a CSS preprocess');
else
{
webTechs.push('Sass');
console.log(webTechs);
}
//Exercise 6 -- Concatenate the given two variables and store it in a fullStack variable, and prints fullStack to console
const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux'];
const backEnd = ['Node','Express', 'MongoDB'];
const fullStack = frontEnd.concat(backEnd);
console.log(fullStack);
//Exercises Level 3
//Exercise 1 -- The following is an array of 10 students ages:
const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24];
// Sort the array and find the min and max age
ages.sort();
console.log(`Min age of students: ${ages[0]} Max age of students: ${ages[ages.length-1]}`);
// Find the median age(one middle item or two middle items divided by two)
var middleValueHolder = ((ages.length-1)/2);
var median = 0;
if(ages.length % 2 == 0)
median = ((ages[Math.floor(middleValueHolder)]+ages[Math.ceil(middleValueHolder)])/2);
else
median = ages[Math.floor((ages.length-1)/2)]; //Tested and fully working
console.log(median);
// Find the average age(all items divided by number of items)
var numAgeElements = ages.length;
var averageAge = 0;
for(var b=0; b<ages.length; b++)
averageAge = averageAge + ages[b];
averageAge = (averageAge/ages.length);
console.log(`Average age is: ${averageAge}`);
// Find the range of the ages(max minus min)
var range = (ages[ages.length-1]-ages[0]);
console.log(`Range of ages: ${range}`);
// Compare the value of (min - average) and (max - average), use abs() method
var temp1 = Math.abs(ages[0] - averageAge);
console.log(`abs(min - average): ${temp1}`);
temp1 = (ages[ages.length-1] - averageAge)
console.log(`(max - average): ${temp1}`);
//Exercise 2 -- Two parts
//Slice the first ten countries from the countries array and prints the result to console
console.log(countries.slice(0,10));
//Find the middle country(ies) in the countries array
//Uses middleValueHolder variable from Exercises Level 3, Problem 1
middleValueHolder = ((countries.length-1)/2);
if(countries.length % 2 == 0)
console.log(`'${countries[Math.floor(middleValueHolder)]}' and '${countries[Math.ceil(middleValueHolder)]}' are middle countries`);
else
console.log(`'${countries[Math.floor((countries.length-1)/2)]}' is the middle element in the array`); //Tested and fully working
//Exercise 3 -- 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. Prints the result to the console
//Uses middleValueHolder variable from Exercises Level 3, Problem 1
middleValueHolder = ((countries.length-1)/2);
console.log(countries.length);
var firstCountriesArray = countries.slice(0, Math.floor(middleValueHolder)+1);
var secondCountriesArray = countries.slice(Math.ceil(middleValueHolder)+1, countries.length);
console.log(`FirstArray Length: ${firstCountriesArray.length} SecondArray Length: ${secondCountriesArray.length}`);
console.log(firstCountriesArray);
console.log(secondCountriesArray);