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

half way done #190

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
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
106 changes: 67 additions & 39 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function myFunction() {

//🚀🚀🚀 ⬇️ 📝 Explanation ⬇️ 📝 🚀🚀🚀:


"becuase you have created the nestedFunction within the scope of my Function"



Expand All @@ -30,11 +30,14 @@ function myFunction() {
💡 NOTE: you may use a for loop for this function if you wish
*/

function summation(/*Your Code Here*/) {
/*Your Code Here*/

function summation(number) {
let sum = 0;
for (let i = 1; i <= number; i++) {
sum += i;
}
return sum;
}


// 🦁🦁🦁 Topic 2: ADVANCED Array Methods 🦁🦁🦁
// Given this zoo data from around the United States, follow the instructions below. Use the specific array methods in the requests below to solve the problems.
Expand All @@ -60,11 +63,15 @@ const zooAnimals = [
💡 NOTE: the array returned should be an array of strings, and each string should follow this pattern: "name: {name}, scientific: {scientific name}"
*/

function animalNames(/*Your Code Here*/){
/*Your Code Here*/
function animalNames(zooAnimals) {
const displayNames = [];
zooAnimals.forEach(function(item) {
displayNames.push(`name: ${item.animal_name}, scientific: ${item.scientific_name}`);
});
return displayNames
}


/* 🦁🦁🦁 Request 2: .map() 🦁🦁🦁
The zoo needs a list of all their animal's names converted to lower case.
Use lowerCaseNames to do the following:
Expand All @@ -75,10 +82,14 @@ const zooAnimals = [
💡 NOTE: Do some research for other methods that can help help you
*/

function lowerCaseNames(/*Your Code Here*/){
/*Your Code Here*/
function lowerCaseNames(zooAnimals){
let lowerCased = zooAnimals.map(zooAnimals => zooAnimals.animal_name.toLowerCase());
return lowerCased

// const lower = zooAnimals.map(lowerCaseNames.toLowerCase)
// return
}


/* 🦁🦁🦁 Request 3: .filter() 🦁🦁🦁
The zoo is concerned about animals with a lower population count.
Expand All @@ -88,11 +99,12 @@ const zooAnimals = [
3. Return this new array
*/

function lowPopulationAnimals(/*Your Code Here*/){
/*Your Code Here*/
}


function lowPopulationAnimals(zooAnimals){
const lowPop = zooAnimals.filter(function(item){
return item.population <= 5
})
return lowPop
}
/* 🦁🦁🦁 Request 4: .reduce() 🦁🦁🦁
The zoo needs to know their total animal population across the United States.
USe USApop to do the following:
Expand All @@ -102,11 +114,15 @@ const zooAnimals = [
💡 NOTE: Remember the reduce method takes two arguments: a callback (which itself takes two args - the accumulator and the item), and an initial value for the count. Check MDN/W3Schools for syntax!
*/

function USApop(/*Your Code Here*/){
/*Your Code Here*/
function USApop(zooAnimals){
const totalPop = zooAnimals.reduce((accumulator, currentVal) => {
return accumulator += currentVal.population
}, 0);
return totalPop
}



// 🦁🦁🦁 Callbacks 🦁🦁🦁
/* 🦁🦁🦁 Step 1: Create a higher-order function 🦁🦁🦁
Use the higher-order function called consume to do the following:
Expand All @@ -116,10 +132,9 @@ const zooAnimals = [
💡 NOTE: The tests for 'consume' will pass if it is created correctly and also after you correctly complete the functions 'add' and 'greeting' below in Step 2.
*/

function consume(/*Your Code Here */){
/*Your Code Here */
function consume (a, b, cb) {
return cb(a, b)
}


// 🦁🦁🦁 Step 2: Create several functions to callback with consume(); 🦁🦁🦁

Expand All @@ -128,8 +143,8 @@ const zooAnimals = [
2. Return the sum of those numbers
*/

function add(/*Your Code Here */){
/*Your Code Here*/
function add(num1, num2){
return num1 + num2;
}


Expand All @@ -138,8 +153,8 @@ function add(/*Your Code Here */){
2. Return the product of those numbers
*/

function multiply(/*Your Code Here */){
/*Your Code Here */
function multiply(num1, num2){
return num1 * num2;
}


Expand All @@ -149,16 +164,16 @@ function multiply(/*Your Code Here */){
💡 NOTE: The string returned must match the format above or the test will not pass!
*/

function greeting(/*Your Code Here */){
return /*Your Code Here */
function greeting(firstName, lastName){
return `Hello ${firstName} ${lastName}, nice to meet you!`
}


// 🦁🦁🦁 Step 3: Check your work by un-commenting the following calls to consume(): 🦁🦁🦁
// ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
// console.log(consume(2, 2, add)); // 4
// console.log(consume(10, 16, multiply)); // 160
// console.log(consume("Mary", "Poppins", greeting)); // Hello Mary Poppins, nice to meet you!
console.log(consume(2, 2, add)); // 4
console.log(consume(10, 16, multiply)); // 160
console.log(consume("Mary", "Poppins", greeting)); // Hello Mary Poppins, nice to meet you!



Expand All @@ -175,24 +190,28 @@ function greeting(/*Your Code Here */){
- Instances of CuboidMaker should initialize `length`, `width` and `height` properties
*/

function CuboidMaker(/*Your Code Here */){
/*Your Code Here */
function CuboidMaker(obj) {
this.length = obj.length;
this.width = obj.width;
this.height = obj.height;
}


/* 🐴🐴🐴 Step 2: Volume Method 🐴🐴🐴
Create a method called volume using CuboidMaker's prototype that returns the volume of a given cuboid's length, width, and height
💡 NOTE: Formula for cuboid volume: length * width * height
*/




CuboidMaker.prototype.volume = function(){
return this.length * this.width * this.height
}
/* 🐴🐴🐴 Step 3: Surface Area Method 🐴🐴🐴
Create another method called surfaceArea using CuboidMaker's prototype that returns the surface area of a given cuboid's length, width, and height.
💡 NOTE: Formula for cuboid surface area: 2 * (length * width + length * height + width * height)
*/

CuboidMaker.prototype.surfaceArea = function(){
return 2 * (this.length * this.width + this.length * this.height + this.width * this.height)
}



Expand All @@ -214,12 +233,21 @@ function CuboidMaker(/*Your Code Here */){
//Using CuboidMakerTwo, take your prototypes from above and refactor into class syntax. Then, create an object called cuboidTwo that uses the new keyword to use our CuboidMakerTwo class.

class CuboidMakerTwo{

constructor(attrs){
this.length = attrs.length;
this.width = attrs.width;
this.height = attrs.height;
}
volume(){
return this.length * this.width * this.height
}
surfaceArea() {
return 2 * (this.length * this.width + this.length * this.height + this.width * this.height)
}
}




//🦄🦄🦄 Test your volume and surfaceArea methods by uncommenting the logs below: 🦄🦄🦄
// console.log(cuboidTwo.volume()); // 100
// console.log(cuboidTwo.surfaceArea()); // 130
Expand Down