Last active
May 2, 2017 03:56
-
-
Save annagzh/57b7be3e602dc9967b871c9b1e09e353 to your computer and use it in GitHub Desktop.
HR PCA Readiness Assessment Monday May 1
This file contains 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'}]; | |
function capitalize(salesTeam) { | |
salesTeam.forEach(function (elem) { | |
elem.name.first = elem.name.first.charAt(0).toUpperCase() + elem.name.first.slice(1); | |
elem.name.last = elem.name.last.charAt(0).toUpperCase() + elem.name.last.slice(1); | |
}) | |
} | |
function assert(expectedBehavior, descriptionOfCorrectBehavior) { | |
if (!expectedBehavior) { | |
console.log(descriptionOfCorrectBehavior); | |
} else { | |
console.log('test passed'); | |
} | |
} | |
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'); | |
var averageTeamSales = function (salesTeam) { | |
var salesArr = []; | |
salesTeam.forEach(function(elem) { | |
salesArr.push(parseInt(elem.sales.slice(1))) | |
}) | |
var sum = salesArr.reduce(function(acc, elem) { | |
return elem + acc; | |
}, 0) | |
return Math.ceil(sum/salesArr.length); | |
}; | |
assert(7487 === averageTeamSales(salesTeam), 'should return 7487') | |
assert(highestEarner(salesTeam) === 'Nancy Napoli: $5255', 'should fail'); | |
function highestEarner(companies) { | |
var salesArr = []; | |
salesTeam.forEach(function(elem) { | |
salesArr.push(parseInt(elem.sales.slice(1))) | |
}) | |
var maxPay = function getMaxOfArray(salesArr) { | |
return Math.max.apply(null, salesArr); | |
} | |
var result | |
salesTeam.forEach(function(elem) { | |
if (parseInt(elem.sales.slice(1)) === maxPay) { | |
result = elem.name.first + ' ' + elem.name.last + ': $' + maxPay; | |
} | |
}) | |
return result; | |
}; | |
assert(highestEarner(salesTeam) === "Earline Erickson: $18876", 'should pass'); | |
console.log(highestEarner(salesTeam)); | |
// Starter Code | |
function filter(collection, predicate) { | |
each(collection, function (elem) { | |
if (predicate(elem)) { | |
result.push(elem) | |
} | |
}) | |
return result; | |
} | |
// DO NOT ADJUST BELOW FUNCTIONS | |
function reduce(collection, accumulator, initialValue) { | |
each(collection, function(val) { | |
if (initialValue !== undefined) { | |
initialValue = accumulator(initialValue, val); | |
} else { | |
initialValue = val; | |
} | |
}) | |
return initialValue; | |
} | |
function each (collection, callback) { | |
if (Array.isArray(collection)) { | |
for (let i = 0; i < collection.length; i++) { | |
callback(collection[i], i, collection); | |
} | |
} else { | |
for (let key in collection) { | |
callback(collection[key], key, collection); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment