Created
May 2, 2017 04:15
-
-
Save abalogun/a0b66af34ffcbcb0090c4b3e9a28f394 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var salesTeam = [{name: {first: 'aleen', last: 'atkins'}, age: 26, sales: '$2314'}, | |
{name: {first: 'alvaro', last: 'angelos'}, age: 55, sales: '$1668'}, | |
{name: {first: 'denese', last: 'dossett'}, age: 29, sales: '$9248'}, | |
{name: {first: 'douglas', last: 'denney'}, age: 53, sales: '$5058'}, | |
{name: {first: 'earline', last: 'erickson'}, age: 19, sales: '$18876'}, | |
{name: {first: 'herman', last: 'hazell'}, age: 25, sales: '$2746'}, | |
{name: {first: 'homer', last: 'hirth'}, age: 26, sales: '$474'}, | |
{name: {first: 'hwa', last: 'heidt'}, age: 53, sales: '$9607'}, | |
{name: {first: 'hyon', last: 'hampshire'}, age: 46, sales: '$13598'}, | |
{name: {first: 'issac', last: 'ingerson'}, age: 45, sales: '$5225'}, | |
{name: {first: 'jeraldine', last: 'joplin'}, age: 39, sales: '$2891'}, | |
{name: {first: 'jin', last: 'jeffrey'}, age: 17, sales: '$14402'}, | |
{name: {first: 'joleen', last: 'jolin'}, age: 45, sales: '$15736'}, | |
{name: {first: 'jude', last: 'jarrett'}, age: 53, sales: '$7557'}, | |
{name: {first: 'magda', last: 'mireles'}, age: 18, sales: '$1498'}, | |
{name: {first: 'mistie', last: 'montealegre'}, age: 31, sales: '$6920'}, | |
{name: {first: 'nancy', last: 'napoli'}, age: 49, sales: '$5255'}, | |
{name: {first: 'regine', last: 'rohrbaugh'}, age: 33, sales: '$7881'}, | |
{name: {first: 'rolando', last: 'riebel'}, age: 35, sales: '$8573'}, | |
{name: {first: 'scarlett', last: 'stagg'}, age: 36, sales: '$7126'}, | |
{name: {first: 'sherron', last: 'strawn'}, age: 36, sales: '$8848'}, | |
{name: {first: 'susan', last: 'shilling'}, age: 29, sales: '$8542'}, | |
{name: {first: 'tama', last: 'tworek'}, age: 16, sales: '$9200'}, | |
{name: {first: 'tonisha', last: 'taunton'}, age: 41, sales: '$5219'}, | |
{name: {first: 'vergie', last: 'villescas'}, age: 25, sales: '$8712'}]; | |
// Part 1 | |
// Let's start with pretty-ing up our data a little bit. Looks like we forgot to capitalize the first and last names of our employees when we entered them into our system. | |
// Write a function capitalize that takes in the salesTeam array and modifies it so that the first letter of the first and last names are capitalized. | |
// Note: this function does not have a return value, it only modifies the passed it argument. | |
// function capitalize(salesTeam) { | |
// // your code here | |
// } | |
// Testing | |
// Tests will use a different team with the exact same data structure | |
// No other input values will be tested | |
// Tests will check if your function has a proper return value | |
// Tests will check to make sure you used an appropriate higher order function | |
function capitalize(salesTeam) { | |
//input: array of objects | |
//output: same | |
// asking us to capitalize first letter of the first and last names | |
//1st level = array, next = objects, = name props; | |
salesTeam.forEach(function (member) { | |
member.name.first = member.name.first[0].toUpperCase()+member.name.first.slice(1); | |
member.name.last = member.name.last[0].toUpperCase()+member.name.last.slice(1); | |
}); | |
return salesTeam; | |
} | |
//console.log(capitalize(salesTeam)); | |
//******************Part 2******** | |
//Using the below assert function, write a simple test that checks one of the elements of the salesTeam array to make sure capitalize did its job. | |
function assert(expectedBehavior, descriptionOfCorrectBehavior) { | |
if (!expectedBehavior) { | |
console.log(descriptionOfCorrectBehavior); | |
} else { | |
console.log('test passed'); | |
} | |
} | |
//Edit the below invocation of the below assert function to use JSON.stringify() where necessary to test your capitalize function. | |
// capitalize(salesTeam); | |
// assert(JSON.stringify(salesTeam[2].name) === JSON.stringify({first: 'Denese', last: 'Dossett'}), 'should capitalize the first letter of the first and last names'); | |
//***************************Part 3****************************** | |
// We are interested in knowing how our team is generally performing. Write a function averageTeamSales that takes in the salesTeam array and returns a single number, the average of all sales for the team. Make sure to round up your result. | |
var averageTeamSales = function (salesTeam) { | |
//input: array of objects(salesTeam) | |
//output: avg of sales across all members | |
//make use of helper function for sum | |
//access needed information | |
//use sum to find average from whole list | |
var arr = []; | |
var sum = 0; | |
salesTeam.forEach(function (member) { | |
member = member.sales.slice(1); | |
sum += parseInt(member); | |
return sum; | |
}); | |
return Math.ceil(sum / salesTeam.length); | |
}; | |
averageTeamSales(salesTeam); | |
//***********************Part 4 *********** | |
function assert(expectedBehavior, descriptionOfCorrectBehavior) { | |
if (!expectedBehavior) { | |
console.log(descriptionOfCorrectBehavior); | |
} else { | |
console.log('test passed'); | |
} | |
} | |
//assert(averageTeamSales(salesTeam) === 7487, 'return average of sales'); | |
//**************************Part 5******** | |
var highestEarner = function (companies) { | |
var highest = 0; | |
companies.filter(function (member) { | |
if(parseInt(member.sales.slice(1)) > highest) { | |
highest = member.name.first + ' '+ member.name.last; | |
} | |
return highest; | |
}); | |
}; | |
highestEarner(salesTeam); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment