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
6 changes: 4 additions & 2 deletions exercises/001.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,7 @@ function transformFirstAndLast(array) {
*/

function transformFirstAndLast(array) {
//your code here
}
var newObj = {};
newObj[array[0]] = array[array.length - 1];
return newObj;
}
10 changes: 9 additions & 1 deletion exercises/002.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,13 @@ function getAllKeys(obj) {
*/

function getAllKeys(obj){
// your code here
var keys = [];
var x;
for (x in obj) {
keys.push(x);
}
return keys;
}

getAllKeys({name: "wes", age: "34", location: "NC"})
console.log(getAllKeys({name: "wes", age: "34", location: "NC"}));
9 changes: 6 additions & 3 deletions exercises/003.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ Function's return value (output):

Do not change the input string. Assume that all elements in the array will be of type 'string'.

Note that the input may have a different number of elements than the given sample.
Note that the input may have a different number of elements than the given sample.
For instance, if the input had 6 values instead of 4, your code should flexibly accommodate that.

Starter Code:
*/

function fromListToObject(array) {
// your code here

var listObj = {};
for (var i = 0; i < array.length; i++) {
listObj[array[i][0]] = array[i][1];
}
return listObj;
}
12 changes: 8 additions & 4 deletions exercises/004.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Example input:
Function's return value (output):
['Krysten', 33, false]

Note that the input may have a different number of keys and values than the given sample.
Note that the input may have a different number of keys and values than the given sample.

E.g. it should also handle an input like:
{
Expand All @@ -28,6 +28,10 @@ Starter Code
*/

function listAllValues(obj) {
// your code here

}
var keys = Object.keys(obj);
var valArray = []
for (var i = 0; i < keys.length; i++){
valArray.push(obj[keys[i]]);
};
return valArray;
};
22 changes: 19 additions & 3 deletions exercises/005.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,30 @@ Given that input, the return value should look like this:
{firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]

Note that the input may have a different number of rows or different keys than the given sample.
Note that the input may have a different number of rows or different keys than the given sample.

For example, let's say the HR department adds a "tshirtSize" field to each employee record. Your code should flexibly accommodate that.

Starter Code :
*/

function transformEmployeeData(array) {
// your code here

var empObj = {};
var empArray = [];
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length; j++) {
empObj[array[i][j][0]] = array[i][j][1];
}
empArray.push(JSON.parse(JSON.stringify(empObj)));
}
return empArray;
}

transformEmployeeData([
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]);
18 changes: 16 additions & 2 deletions exercises/006.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,19 @@ Starter Code:
*/

function convertObjectToList(obj) {
// your code here
}
var keyArray = Object.keys(obj);
var converted = [];
var tempArray = [];
for (var i = 0; i < keyArray.length; i++) {
tempArray.push(keyArray[i]);
tempArray.push(obj[keyArray[i]]);
converted.push(tempArray);
tempArray = [];
}
return converted;
}
convertObjectToList({
name: 'Holly',
age: 35,
role: 'producer'
});
21 changes: 16 additions & 5 deletions exercises/007.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/*
Write a function called "greetCustomer".

Given a name, "greetCustomer" returns a greeting based on how many times that customer has visited the restaurant. Please refer to the customerData object.
Given a name, "greetCustomer" returns a greeting based on how many times that customer has visited the restaurant. Please refer to the customerData object.

The greeting should be different, depending on the name on their reservation.

Case 1 - Unknown customer ( Name is not present in customerData ):
Case 1 - Unknown customer ( Name is not present in customerData ):

var output = greetCustomer('Terrance');
console.log(output); // --> 'Welcome! Is this your first time?'
Expand Down Expand Up @@ -48,9 +48,20 @@ var customerData = {
};

function greetCustomer(firstName) {
var greeting = '';
// your code here
if (customerData[firstName] == undefined) {
return "Welcome! Is this your first time?";
};


var greeting;
var visits = customerData[firstName]["visits"];
if (visits == 1) {
greeting = "Welcome back, " + firstName + "! We're glad you liked us the first time!"
} else {
greeting = "Welcome back, " + firstName + "! So glad to see you again!"
};
// your code here
console.log(greeting);
return greeting;
}

greetCustomer("Joe");
25 changes: 25 additions & 0 deletions this/this.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
var coffeeShop = {
beans: 40,
drinkRequirements: {
latte: 10,
americano: 5,
doubleShot: 15,
frenchPress: 12
},
makeDrink: function (drinkType) {
if (this.drinkRequirements[drinkType] && this.beans >= this.drinkRequirements[drinkType]) {
this.beans -= this.drinkRequirements[drinkType];
console.log(drinkType + " is ready!");
} else if (!this.drinkRequirements[drinkType]) {
console.log("Sorry, we don't make " + drinkType);
} else if (this.beans < this.drinkRequirements[drinkType]) {
console.log("Sorry, we're all out of beans!");
}
}
};

coffeeShop.makeDrink('latte');
coffeeShop.makeDrink('americano');
coffeeShop.makeDrink('pourOver');
coffeeShop.makeDrink('doubleShot');
coffeeShop.makeDrink('frenchPress');