Skip to content

Commit

Permalink
finished homework SunJieMing#3
Browse files Browse the repository at this point in the history
  • Loading branch information
Smithface committed Jan 4, 2018
1 parent af43945 commit 603b3dd
Show file tree
Hide file tree
Showing 2 changed files with 3,668 additions and 0 deletions.
47 changes: 47 additions & 0 deletions exercises.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,68 +5,107 @@ 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 cat = {
name: name,
age: age,
meow: function() {
return 'Meow!';
}
};
return cat;
}

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 newObject = {};
newObject.name = name;
newObject.email = email;
newObject.password = password;
return newObject;
}

function hasEmail(user) {
// return true if the user has a value for the property 'email'
// otherwise return false
if (user.email != undefined && user.email.length > 7) {
return true;
}
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
if (object[property] != undefined) {
return true;
}
return false;
}

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
if (user.password === password) {
return true;
}
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 user in users) {
users[user].isPremium = true;
}
return users;
}

function sumUserPostLikes(user) {
Expand All @@ -75,6 +114,11 @@ 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 sum = 0;
for (var x in user.posts) {
sum = sum + user.posts[x].likes;
}
return sum;
}

function addCalculateDiscountPriceMethod(storeItem) {
Expand All @@ -85,6 +129,9 @@ function addCalculateDiscountPriceMethod(storeItem) {
// price -> 20
// discountPercentage -> .2
// discountPrice = 20 - (20 * .2)
storeItem.calculateDiscountPrice = function() {return storeItem.price - (storeItem.price * storeItem.discountPercentage);};
//this code did not work without the "return storeItem" line, and I have no idea why.
return storeItem;
}

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

0 comments on commit 603b3dd

Please sign in to comment.