Created
June 6, 2017 02:48
-
-
Save austinreuter/ba7a51608d714bfd1f6b0adc7833c9b3 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
//https://scrimba.com/casts/cNgwQA3 | |
//take array of objects; | |
//within each object; access name property: access first last prop names; | |
//return array of strings: "first last"; | |
function isTeenager(salesTeam) { | |
//return only names that are 18 and 13, inclusive; | |
//iterate through each object; | |
//access name prop | |
//access first name prop w.in name obj; | |
//access last name prop w/in name obj; | |
// combine "First last" | |
//push out in output array; | |
var ret = []; | |
for (var i = 0; i < salesTeam.length; i++) { | |
var person = salesTeam[i]; | |
var age = person.age; | |
var name = person.name; | |
var first = name.first; | |
var last = name.last; | |
if (age <= 19 && age >= 13) { | |
ret.push(first + ' ' + last); | |
} | |
} | |
return ret; | |
} | |
function assertEqual(input, expected, testName) { | |
if (input === expected) { | |
console.log('passed') | |
} else { | |
console.log('FAILED [' + testName + '] expected ' + expected + ' but got ' + input); | |
} | |
} | |
function assertObjectsEqual(actual, expected, testName) { | |
if (JSON.stringify(actual) === JSON.stringify(expected)) { | |
console.log('Test passed'); | |
} else { | |
console.log('Test ['+testName+'] failed: expected ', expected, ' but got, ', actual ); | |
} | |
} | |
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'}]; | |
var expected = ['Earline Erickson', 'Jin Jeffrey', 'Magda Mireles', 'Tama Tworek']; | |
assertObjectsEqual(isTeenager(salesTeam), expected, 'it renders teenagers'); | |
function oldest(salesTeam) { | |
var oldest = 0; | |
var output = ''; | |
for (var i = 0; i < salesTeam.length; i++) { | |
var person = salesTeam[i]; | |
//iterate through our salesTeam | |
//access age; | |
var age = person.age; | |
var first = person.name.first; | |
var last = person.name.last; | |
//identify oldest; | |
if (oldest < age) { | |
output = first + ' ' + last; | |
oldest = age; | |
} | |
//update need be, not including a person that is same age; | |
} | |
return output; | |
} | |
assertObjectsEqual(oldest(salesTeam), 'Alvaro Angelos', 'it finds oldest salesperson'); | |
function tenThousandClub(salesTeam) { | |
var output = []; | |
//iterate through each; | |
//access sales; | |
for (var i = 0; i < salesTeam.length; i++) { | |
var person = salesTeam[i]; | |
var sales = person.sales; | |
var first = person.name.first; | |
var last = person.name.last; | |
if (salesToNumber(sales) > 10000) { | |
output.push(first + ' ' + last); | |
} | |
} | |
return output; | |
} | |
function salesToNumber(string) { | |
//parse into number; | |
return Number(string.slice(1)); | |
} | |
var test = '$18876' | |
assertObjectsEqual(salesToNumber(test), 18876, 'it renders a number from $') | |
var club = ['Earline Erickson', 'Hyon Hampshire', 'Jin Jeffrey', 'Joleen Jolin', ] | |
assertObjectsEqual(tenThousandClub(salesTeam), club, 'it finds persons with 10k sales'); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment