Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save san-sekhon/a907c4392dbfdb944893a3036da334e6 to your computer and use it in GitHub Desktop.
Save san-sekhon/a907c4392dbfdb944893a3036da334e6 to your computer and use it in GitHub Desktop.
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