Skip to content

Commit

Permalink
HW SunJieMing#3 done, better late that never! Still chugging along!
Browse files Browse the repository at this point in the history
  • Loading branch information
nyc-rando committed May 11, 2017
1 parent 6e00ac4 commit 093e54c
Showing 1 changed file with 52 additions and 1 deletion.
53 changes: 52 additions & 1 deletion exercises.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,68 +7,108 @@ function makeCat(name, age) {
//add an age property to the object with the value set to the age argument
//add a method called meow that returns the string 'Meow!'
//return the object
var obj = {
meow: function(){
return 'Meow!';
}
};
obj.name = name;
obj.age = age;
return obj;
}

function addProperty(object, property) {
//add the property to the object with a value of null
//return the object
//note: the property name is NOT 'property'. The name is the value of the argument called property (a string)
object[property] = null;
return object;
}

function invokeMethod(object, method) {
//method is a string that contains the name of a method on the object
//invoke this method
//nothing needs to be returned
object[method]();
}

function multiplyMysteryNumberByFive(mysteryNumberObject) {
//mysteryNumberObject has a property called mysteryNumber
//multiply the mysteryNumber property by 5 and return the product
return mysteryNumberObject.mysteryNumber * 5;
}

function deleteProperty(object, property) {
//remove the property from the object
//return the object
delete object[property];
return object;
}

function newUser(name, email, password) {
//create a new object with properties matching the arguments passed in.
//return the new object
var object = {
name: name,
email: email,
password: password
};
return object;
}

function hasEmail(user) {
//return true if the user has a value for the property 'email'
//otherwise return false
if (user['email']){
return true;
}
else{
return false;
}
}

function hasProperty(object, property) {
//return true if the object has the value of the property argument
//property is a string
//otherwise return false
return object.hasOwnProperty(property);
}

function verifyPassword(user, password) {
//check to see if the provided password matches the password property on the user object
//return true if they match
//otherwise return false
//otherwise return false
if (user.password === password){
return true;
}else{
return false;
}
}

function updatePassword(user, newPassword) {
//replace the existing password on the user object with the value of newPassword
//return the object
user.password = newPassword;
return user;
}

function addFriend(user, newFriend) {
//user has a property called friends that is an array
//add newFriend to the end of the friends array
//return the user object
user.friends.push(newFriend);
return user;
}

function setUsersToPremium(users) {
//users is an array of user objects.
//each user object has the property 'isPremium'
//set each user's isPremium property to true
//return the users array
for (var i=0; i<users.length; i++ ){
users[i]['isPremium'] = true;
}
return users;
}

function sumUserPostLikes(user) {
Expand All @@ -77,6 +117,13 @@ function sumUserPostLikes(user) {
//each post object has an integer property called 'likes'
//sum together the likes from all the post objects
//return the sum
var emptyArr = [];
user['posts'].forEach(function(el){
emptyArr.push(el['likes']);
});
return emptyArr.reduce(function(a,b){
return a+b;
});
}

function addCalculateDiscountPriceMethod(storeItem) {
Expand All @@ -87,6 +134,10 @@ function addCalculateDiscountPriceMethod(storeItem) {
//price -> 20
//discountPercentage -> .2
//discountPrice = 20 - (20 * .2)
storeItem.calculateDiscountPrice = function(){
return this.price * (1-this.discountPercentage);
};
return storeItem;
}

//Do not modify code below this line.
Expand Down

0 comments on commit 093e54c

Please sign in to comment.