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
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@

**Follow these steps to set up and work on your project:**

* [ ] Create a forked copy of this project.
* [ ] Add your project manager as collaborator on Github.
* [ ] Clone your OWN version of the repository (Not Lambda's by mistake!).
* [ ] Create a new branch: git checkout -b `<firstName-lastName>`.
* [ ] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly.
* [ ] Push commits: git push origin `<firstName-lastName>`.
* [x] Create a forked copy of this project.
* [x] Add your project manager as collaborator on Github.
* [x] Clone your OWN version of the repository (Not Lambda's by mistake!).
* [x] Create a new branch: git checkout -b `<firstName-lastName>`.
* [x] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly.
* [x] Push commits: git push origin `<firstName-lastName>`.

**Follow these steps for completing your project.**

* [ ] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request**
* [ ] Add your project manager as a reviewer on the pull-request
* [x] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request**
* [x] Add your project manager as a reviewer on the pull-request
* [ ] Your project manager will count the project as complete by merging the branch back into master.

## Assignment Description
Expand Down Expand Up @@ -46,7 +46,7 @@ The [arrays.js](assignments/arrays.js) assignment takes us through a large data

### Arrow Function Syntax

* [ ] Arrow Function Syntax - [Check out this awesome guide for ES6 arrow syntax](https://medium.freecodecamp.org/when-and-why-you-should-use-es6-arrow-functions-and-when-you-shouldnt-3d851d7f0b26). You will see more and more arrow functions as you progress deeper into JavaScript. Use the [function-conversion.js](assignments/function-conversion.js) file as a helper challenge to showcase some of the differences between ES5 and ES6 syntax.
* [x] Arrow Function Syntax - [Check out this awesome guide for ES6 arrow syntax](https://medium.freecodecamp.org/when-and-why-you-should-use-es6-arrow-functions-and-when-you-shouldnt-3d851d7f0b26). You will see more and more arrow functions as you progress deeper into JavaScript. Use the [function-conversion.js](assignments/function-conversion.js) file as a helper challenge to showcase some of the differences between ES5 and ES6 syntax.

### Stretch

Expand Down
43 changes: 34 additions & 9 deletions assignments/arrays.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,32 +63,57 @@ let inventory = [{"id":1,"car_make":"Lincoln","car_model":"Navigator","car_year"

// ==== Challenge 1 ====
// The dealer can't recall the information for a car with an id of 33 on his lot. Help the dealer find out which car has an id of 33 by logging the car's year, make, and model in the console log provided to you below:
console.log(`Car 33 is a *car year goes here* *car make goes here* *car model goes here*` );
const car33 = inventory.find(car => car.id == 33);

console.log(`Car 33 is a ${car33.car_year} ${car33.car_make} ${car33.car_model}` );

// ==== Challenge 2 ====
// The dealer needs the information on the last car in their inventory. What is the make and model of the last car in the inventory? Log the make and model into the console.
let lastCar = 0;
console.log();
let {car_make, car_model} = inventory[inventory.length - 1];
console.log(`${car_make} ${car_model}`);

// ==== Challenge 3 ====
// The marketing team wants the car models listed alphabetically on the website. Sort all the car model names into alphabetical order and log the results in the console
let carModels = [];
console.log();
for (let i = 0; i < inventory.length; i++) carModels.push(inventory[i].car_model);
carModels.sort();
console.log(carModels);

// ==== Challenge 4 ====
// The accounting team needs all the years from every car on the lot. Create a new array from the dealer data containing only the car years and log the result in the console.
let carYears = [];
console.log();
for (let i = 0; i < inventory.length; i++) carYears.push(inventory[i].car_year);
console.log(carYears);

// ==== Challenge 5 ====
// The car lot manager needs to find out how many cars are older than the year 2000. Using the carYears array you just created, find out how many cars were made before the year 2000 by populating the array oldCars and logging it's length.
let oldCars = [];
console.log();
for (let i = 0; i < carYears.length; i++) {
if (carYears[i] < 2000) oldCars.push(carYears[i]);
}
console.log(oldCars.length);

// ==== Challenge 6 ====
// A buyer is interested in seeing only BMW and Audi cars within the inventory. Return an array that only contains BMW and Audi cars. Once you have populated the BMWAndAudi array, use JSON.stringify() to show the results of the array in the console.
// A buyer is interested in seeing only BMW and Audi cars within the inventory. Return an array that only contains BMW and Audi cars. Once you have populated the BMWAndAudi array, use JSON.stringify() to show the results of the array in the console.
let BMWAndAudi = [];
console.log();

// for (let i = 0; i < inventory.length; i++) { // bored of using for loops
// if (inventory[i].car_make === "BMW" ||
// inventory[i].car_make === "Audi") {
// BMWAndAudi.push(inventory[i]);
// }
// }
let i = 0;
while (i > -1) {
let snobbyCarIndex = inventory.findIndex(car => {
return car.car_make === "BMW" || car.car_make === "Audi";
});
console.log(snobbyCarIndex);
console.log(inventory[snobbyCarIndex]);

if (snobbyCarIndex > -1) {
BMWAndAudi.push(inventory.splice(snobbyCarIndex, 1)[0]);
}

i = snobbyCarIndex;
}
console.log(JSON.stringify(BMWAndAudi));
25 changes: 20 additions & 5 deletions assignments/function-conversion.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,29 @@
// let myFunction = function () {
// console.log("Function was invoked!");
// };
// myFunction();

let myFunction = () => console.log("Function was invoked!");
myFunction();

// let anotherFunction = function (param) {
// return param;
// };
// anotherFunction("Example");

let anotherFunction = param => param;
anotherFunction("Example");

// let add = function (param1, param2) {
// return param1 + param2;
// };
// add(1,2);
let add = (param1, param2) => param1 + param2;
add(1,2);

// let subtract = function (param1, param2) {
// return param1 - param2;
// };
// subtract(1,2);

let subtract = (param1, param2) => param1 - param2;
subtract(1,2);


// Stretch
Expand All @@ -27,4 +34,12 @@
// const triple = exampleArray.map(function (num) {
// return num * 3;
// });
// console.log(triple);
let triple = numbers => {
const tripled = [];
for (let i = 0; i < numbers.length; i++) {
tripled.push(numbers[i] * 3);
}

return tripled;
};
console.log(triple([1, 2, 3, 4]));
2 changes: 1 addition & 1 deletion assignments/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@
<body>
<h1>Check your work in the console!</h1>
</body>
</html>
</html>
93 changes: 87 additions & 6 deletions assignments/objects.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@
// ==== Challenge 1: Writing Objects ====
// HR needs some information on the new interns put into a database. Given an id, email, first name, and gender. Create an object for each person in the company list:

// 1,mmelloy0@psu.edu,Mitzi,F
// 2,kdiben1@tinypic.com,Kennan,M
// 3,kmummery2@wikimedia.org,Keven,M
// 4,gmartinson3@illinois.edu,Gannie,M
// 5,adaine5@samsung.com,Antonietta,F

// Example format of an intern object: 1,examples@you.edu,Example,F
const example = {
Expand All @@ -18,27 +13,80 @@ const example = {
}

// Write your intern objects here:
// 1,mmelloy0@psu.edu,Mitzi,F
const mitzi = {
id: 1,
"name": "Mitzi",
"email": "mmelloy0@psu.edu",
gender: "F",
};

// 2,kdiben1@tinypic.com,Kennan,M
const kennan = {
id: 2,
"name": "Kennan",
"email": "kdiben1@tinypic.com",
gender: "M",
};

// 3,kmummery2@wikimedia.org,Keven,M
const keven = {
id: 3,
"name": "Keven",
"email": "kmummery2@wikimedia.org",
gender: "M",
};

// 4,gmartinson3@illinois.edu,Gannie,M
const gannie = {
id: 4,
"name": "Gannie",
"email": "gmartinson3@illinois.edu",
gender: "M",
};

// 5,adaine5@samsung.com,Antonietta,F
const antonietta = {
id: 5,
"name": "adaine5@samsung.com",
"email": "Antonietta",
gender: "F",
};

// ==== Challenge 2: Reading Object Data ====
// Once your objects are created, log out the following requests from HR into the console:

// Mitzi's name
console.log(mitzi.name);

// Kennan's ID
console.log(kennan.id);

// Keven's email
console.log(keven.email);

// Gannie's name
console.log(gannie.name);

// Antonietta's Gender
console.log(antonietta.gender);

// ==== Challenge 3: Object Methods ====
// Give Kennan the ability to say "Hello, my name is Kennan!" Use the console.log provided as a hint.
// console.log(kennan.speak());
kennan.speak = function() {
return `Hello, my name is ${this.name}!`;
}

console.log(kennan.speak());

// Antonietta loves math, give her the ability to multiply two numbers together and return the product. Use the console.log provided as a hint.
//console.log(antonietta.multiplyNums(3,4));
antonietta.multiplyNums = function(x, y) {
return x * y;
}

console.log(antonietta.multiplyNums(3, 4));

// === Great work! === Head over to the the arrays.js file or take a look at the stretch challenge

Expand All @@ -49,16 +97,49 @@ const example = {
// 3. Nest a grandchild object in the child object with properties for name and age. The name will be Sam and the age will be 30
// 4. Give each of the objects the ability to speak their names using the this keyword.

const parent = {}
const parent = {
name: "Susan",
age: 70,
speak: function() {
console.log(sayName.call(this));
},

child: {
name: "George",
age: 50,
speak: function() {
console.log(sayName.call(this));
},

grandchild: {
name: "Sam",
age: 30,
speak: function () {
console.log(sayName.call(this));
},
}
}
};

const sayName = function() {
return `My name is ${this.name}`; // only works using .call()
};

// Log the parent object's name
console.log(parent.name);


// Log the child's age
console.log(parent.child.age);

// Log the name and age of the grandchild
console.log(`I'm ${parent.child.grandchild.name} and I am ${parent.child.grandchild.age}`);

// Have the parent speak
parent.speak();

// Have the child speak
parent.child.speak();

// Have the grandchild speak
parent.child.grandchild.speak();