diff --git a/src/__tests__/arrays.test.js b/src/__tests__/arrays.test.js index d00a5566..319dd620 100644 --- a/src/__tests__/arrays.test.js +++ b/src/__tests__/arrays.test.js @@ -19,34 +19,34 @@ const { describe('getNthElement', () => { const array = ['cat', 'dog', 'elephant', 'fox']; - xit('returns the element at the given position', () => { + it('returns the element at the given position', () => { expect(getNthElement(0, array)).toEqual('cat'); expect(getNthElement(2, array)).toEqual('elephant'); expect(getNthElement(3, array)).toEqual('fox'); }); - xit('if n is greater than the number of elements, it cycles back to the start', () => { + it('if n is greater than the number of elements, it cycles back to the start', () => { expect(getNthElement(4, array)).toEqual('cat'); expect(getNthElement(5, array)).toEqual('dog'); }); }); describe('arrayToCSVString', () => { - xit('returns the array elements as a comma-seperated string', () => { + it('returns the array elements as a comma-seperated string', () => { expect(arrayToCSVString(['a', 'b', 'c', 'd'])).toEqual('a,b,c,d'); expect(arrayToCSVString([1, 2, 3, 4, 5])).toEqual('1,2,3,4,5'); }); }); describe('csvStringToArray', () => { - xit('converts the csv string as an array', () => { + it('converts the csv string as an array', () => { expect(csvStringToArray('a,b,c,d')).toEqual(['a', 'b', 'c', 'd']); expect(csvStringToArray('1,2,3,4,5')).toEqual(['1', '2', '3', '4', '5']); }); }); describe('addToArray', () => { - xit('adds the item to the end of the array', () => { + it('adds the item to the end of the array', () => { const array = []; const array2 = [1, 2, 3]; @@ -59,7 +59,7 @@ describe('addToArray', () => { }); describe('addToArray2', () => { - xit('returns a new array with the value appended', () => { + it('returns a new array with the value appended', () => { const array = ['a', 'b', 'c']; const array2 = [1, 2, 3]; @@ -72,7 +72,7 @@ describe('addToArray2', () => { }); describe('removeNthElement', () => { - xit('removes the element at position n', () => { + it('removes the element at position n', () => { const array = ['ant', 'bison', 'cockerel', 'duck', 'elephant']; removeNthElement(2, array); expect(array).toEqual(['ant', 'bison', 'duck', 'elephant']); @@ -84,14 +84,14 @@ describe('removeNthElement', () => { }); describe('numbersToStrings', () => { - xit('converts every number in the array to a string', () => { + it('converts every number in the array to a string', () => { expect(numbersToStrings([1, 2, 3])).toEqual(['1', '2', '3']); expect(numbersToStrings([7, 8, 9])).toEqual(['7', '8', '9']); }); }); describe('uppercaseWordsInArray', () => { - xit('makes every string in the array uppercase', () => { + it('makes every string in the array uppercase', () => { expect(uppercaseWordsInArray(['cat', 'mouse', 'banana'])).toEqual([ 'CAT', 'MOUSE', @@ -106,7 +106,7 @@ describe('uppercaseWordsInArray', () => { }); describe('reverseWordsInArray', () => { - xit('reverses every string in an array', () => { + it('reverses every string in an array', () => { expect(reverseWordsInArray(['cat', 'Mouse', 'banana'])).toEqual([ 'tac', 'esuoM', @@ -121,14 +121,14 @@ describe('reverseWordsInArray', () => { }); describe('onlyEven', () => { - xit('filters the array and only returns even numbers', () => { + it('filters the array and only returns even numbers', () => { expect(onlyEven([1, 2, 3, 4, 5, 6, 7, 8])).toEqual([2, 4, 6, 8]); expect(onlyEven([8, 9, 10, 11, 12, 13, 14, 15])).toEqual([8, 10, 12, 14]); }); }); describe('removeNthElement2', () => { - xit('returns an array with the nth element removed, and does not mutate the original', () => { + it('returns an array with the nth element removed, and does not mutate the original', () => { const array = ['bike', 'car', 'train', 'bus']; expect(removeNthElement2(2, array)).toEqual(['bike', 'car', 'bus']); expect(array).toEqual(['bike', 'car', 'train', 'bus']); @@ -139,7 +139,7 @@ describe('removeNthElement2', () => { }); describe('elementsStartingWithAVowel', () => { - xit('returns elements starting with a vowel', () => { + it('returns elements starting with a vowel', () => { expect( elementsStartingWithAVowel([ 'apple', @@ -179,7 +179,7 @@ describe('elementsStartingWithAVowel', () => { ).toEqual(['aaaa', 'eeee']); }); - xit('is case insensitive', () => { + it('is case insensitive', () => { expect( elementsStartingWithAVowel([ 'Apple', @@ -221,7 +221,7 @@ describe('elementsStartingWithAVowel', () => { }); describe('removeSpaces', () => { - xit('returns the string with the space characters removed', () => { + it('returns the string with the space characters removed', () => { expect(removeSpaces('this string has spaces')).toEqual( 'thisstringhasspaces' ); @@ -232,14 +232,14 @@ describe('removeSpaces', () => { }); describe('sumNumbers', () => { - xit('returns the sum of the numbers in the array', () => { + it('returns the sum of the numbers in the array', () => { expect(sumNumbers([1, 3, 5, 6, 2, 8])).toEqual(25); expect(sumNumbers([1, 3, 5])).toEqual(9); }); }); describe('sortByLastLetter', () => { - xit('sorts the string by the last character', () => { + it('sorts the string by the last character', () => { expect( sortByLastLetter(['Lannister', 'Stark', 'Greyjoy', 'Targaryen']) ).toEqual(['Stark', 'Targaryen', 'Lannister', 'Greyjoy']); diff --git a/src/__tests__/booleans.test.js b/src/__tests__/booleans.test.js index 734201d5..062a01de 100644 --- a/src/__tests__/booleans.test.js +++ b/src/__tests__/booleans.test.js @@ -17,14 +17,14 @@ const { } = require('../booleans'); describe('negate', () => { - xit('returns the opposite of the passed boolean value', () => { + it('returns the opposite of the passed boolean value', () => { expect(negate(true)).toBe(false); expect(negate(false)).toBe(true); }); }); describe('both', () => { - xit('returns true if both of the given booleans are true', () => { + it('returns true if both of the given booleans are true', () => { expect(both(true, true)).toBe(true); expect(both(true, false)).toBe(false); expect(both(false, true)).toBe(false); @@ -33,7 +33,7 @@ describe('both', () => { }); describe('either', () => { - xit('returns true if at least one of the given booleans are true', () => { + it('returns true if at least one of the given booleans are true', () => { expect(either(true, true)).toBe(true); expect(either(true, false)).toBe(true); expect(either(false, true)).toBe(true); @@ -42,7 +42,7 @@ describe('either', () => { }); describe('none', () => { - xit('returns true if neither of the given booleans are true', () => { + it('returns true if neither of the given booleans are true', () => { expect(none(true, true)).toBe(false); expect(none(true, false)).toBe(false); expect(none(false, true)).toBe(false); @@ -51,7 +51,7 @@ describe('none', () => { }); describe('one', () => { - xit('returns true if exactly one of the given booleans are true', () => { + it('returns true if exactly one of the given booleans are true', () => { expect(one(true, true)).toBe(false); expect(one(true, false)).toBe(true); expect(one(false, true)).toBe(true); @@ -60,7 +60,7 @@ describe('one', () => { }); describe('truthiness', () => { - xit('returns the truthiness of the given value', () => { + it('returns the truthiness of the given value', () => { expect(truthiness('')).toBe(false); expect(truthiness('dbbd')).toBe(true); expect(truthiness(0)).toBe(false); @@ -74,7 +74,7 @@ describe('truthiness', () => { }); describe('isEqual', () => { - xit('returns whether the two values are equal', () => { + it('returns whether the two values are equal', () => { expect(isEqual(true, false)).toBe(false); expect(isEqual(true, true)).toBe(true); expect(isEqual('true', 'true')).toBe(true); @@ -86,7 +86,7 @@ describe('isEqual', () => { }); describe('isGreaterThan', () => { - xit('returns true if the first number is strictly greater than the second', () => { + it('returns true if the first number is strictly greater than the second', () => { expect(isGreaterThan(1, 2)).toBe(false); expect(isGreaterThan(3, 2)).toBe(true); expect(isGreaterThan(4, 4)).toBe(false); @@ -98,7 +98,7 @@ describe('isGreaterThan', () => { }); describe('isLessThanOrEqualTo', () => { - xit('returns true if the first number is less than or equal to the second', () => { + it('returns true if the first number is less than or equal to the second', () => { expect(isLessThanOrEqualTo(1, 2)).toBe(true); expect(isLessThanOrEqualTo(3, 2)).toBe(false); expect(isLessThanOrEqualTo(4, 4)).toBe(true); @@ -108,7 +108,7 @@ describe('isLessThanOrEqualTo', () => { }); describe('isOdd', () => { - xit('returns whether the number is odd', () => { + it('returns whether the number is odd', () => { expect(isOdd(5)).toBe(true); expect(isOdd(6)).toBe(false); expect(isOdd(7)).toBe(true); @@ -117,7 +117,7 @@ describe('isOdd', () => { }); describe('isEven', () => { - xit('returns whether the number is even', () => { + it('returns whether the number is even', () => { expect(isEven(5)).toBe(false); expect(isEven(6)).toBe(true); expect(isEven(7)).toBe(false); @@ -126,7 +126,7 @@ describe('isEven', () => { }); describe('isSquare', () => { - xit('returns true if the number is a square', () => { + it('returns true if the number is a square', () => { expect(isSquare(9)).toEqual(true); expect(isSquare(4)).toEqual(true); expect(isSquare(5)).toEqual(false); @@ -136,7 +136,7 @@ describe('isSquare', () => { }); describe('startsWith', () => { - xit('returns whether the given string starts with the given character', () => { + it('returns whether the given string starts with the given character', () => { expect(startsWith('a', 'aardvark')).toBe(true); expect(startsWith('c', 'aardvark')).toBe(false); expect(startsWith('b', 'baardvark')).toBe(true); @@ -146,15 +146,23 @@ describe('startsWith', () => { }); describe('containsVowels', () => { - xit('returns whether the given string contains vowels', () => { + it('returns whether the given string contains vowels', () => { expect(containsVowels('cat')).toBe(true); + expect(containsVowels('cAt')).toBe(true); + expect(containsVowels('cet')).toBe(true); + expect(containsVowels('cEt')).toBe(true); + expect(containsVowels('cit')).toBe(true); + expect(containsVowels('cIt')).toBe(true); expect(containsVowels('DOG')).toBe(true); + expect(containsVowels('DoG')).toBe(true); + expect(containsVowels('DUG')).toBe(true); + expect(containsVowels('DuG')).toBe(true); expect(containsVowels('why')).toBe(false); }); }); describe('isLowerCase', () => { - xit('it returns true if the given string is lowercase', () => { + it('it returns true if the given string is lowercase', () => { expect(isLowerCase('abc')).toBe(true); expect(isLowerCase('abc213')).toBe(true); expect(isLowerCase('Abc')).toBe(false); diff --git a/src/__tests__/numbers.test.js b/src/__tests__/numbers.test.js index 253de15f..d610b3b3 100644 --- a/src/__tests__/numbers.test.js +++ b/src/__tests__/numbers.test.js @@ -13,7 +13,7 @@ const { } = require('../numbers'); describe('add', () => { - xit('adds the two numbers together', () => { + it('adds the two numbers together', () => { expect(add(2, 1)).toEqual(3); expect(add(15, 76)).toEqual(91); expect(add(12, 0)).toEqual(12); @@ -22,7 +22,7 @@ describe('add', () => { }); describe('subtract', () => { - xit('subtracts the second number from the first', () => { + it('subtracts the second number from the first', () => { expect(subtract(2, 1)).toEqual(1); expect(subtract(1, 2)).toEqual(-1); expect(subtract(-2, 1)).toEqual(-3); @@ -32,7 +32,7 @@ describe('subtract', () => { }); describe('multiply', () => { - xit('multiplies the two numbers together', () => { + it('multiplies the two numbers together', () => { expect(multiply(10, 3)).toEqual(30); expect(multiply(-11, 5)).toEqual(-55); expect(multiply(-4, -9)).toEqual(36); @@ -40,7 +40,7 @@ describe('multiply', () => { }); describe('divide', () => { - xit('divides the first number by the second number', () => { + it('divides the first number by the second number', () => { expect(divide(20, 5)).toEqual(4); expect(divide(5, 2)).toEqual(2.5); expect(divide(2, 5)).toEqual(0.4); @@ -49,7 +49,7 @@ describe('divide', () => { }); describe('power', () => { - xit('returns the first number to the power of the second', () => { + it('returns the first number to the power of the second', () => { expect(power(5, 2)).toEqual(25); expect(power(2, 3)).toEqual(8); expect(power(10, 5)).toEqual(100000); @@ -57,7 +57,7 @@ describe('power', () => { }); describe('round', () => { - xit('rounds the number to the nearest integer', () => { + it('rounds the number to the nearest integer', () => { expect(round(2.1)).toEqual(2); expect(round(9.7)).toEqual(10); expect(round(5.5)).toEqual(6); @@ -65,7 +65,7 @@ describe('round', () => { }); describe('roundUp', () => { - xit('rounds the number up to the nearest integer', () => { + it('rounds the number up to the nearest integer', () => { expect(roundUp(2.1)).toEqual(3); expect(roundUp(9.7)).toEqual(10); expect(roundUp(5.5)).toEqual(6); @@ -73,7 +73,7 @@ describe('roundUp', () => { }); describe('roundDown', () => { - xit('rounds the number down to the nearest integer', () => { + it('rounds the number down to the nearest integer', () => { expect(roundDown(2.1)).toEqual(2); expect(roundDown(9.7)).toEqual(9); expect(roundDown(5.5)).toEqual(5); @@ -81,7 +81,7 @@ describe('roundDown', () => { }); describe('absolute', () => { - xit('returns the absolute value of the number', () => { + it('returns the absolute value of the number', () => { expect(absolute(-1)).toEqual(1); expect(absolute(1)).toEqual(1); expect(absolute(0)).toEqual(0); @@ -93,7 +93,7 @@ describe('quotient', () => { // the first by the second, without the remainder // 18 divided by 7 is 2 remainder 4 (or 2.571...) // so the quotient of 18 and 7 is 2 - xit('returns the quotient from dividing the first number by the second number', () => { + it('returns the quotient from dividing the first number by the second number', () => { expect(quotient(10, 3)).toEqual(3); expect(quotient(18, 7)).toEqual(2); expect(quotient(77, 10)).toEqual(7); @@ -102,7 +102,7 @@ describe('quotient', () => { }); describe('remainder', () => { - xit('returns the remainder when dividing the first number by the second number', () => { + it('returns the remainder when dividing the first number by the second number', () => { expect(remainder(10, 3)).toEqual(1); expect(remainder(18, 7)).toEqual(4); expect(remainder(77, 10)).toEqual(7); diff --git a/src/__tests__/objects.test.js b/src/__tests__/objects.test.js index 77abc373..1755397f 100644 --- a/src/__tests__/objects.test.js +++ b/src/__tests__/objects.test.js @@ -12,7 +12,7 @@ const { } = require('../objects'); describe('createPerson', () => { - xit('creates an object with the given name and age properties', () => { + it('creates an object with the given name and age properties', () => { expect(createPerson('Fred', 79)).toEqual({ name: 'Fred', age: 79 @@ -26,7 +26,7 @@ describe('createPerson', () => { }); describe('getName', () => { - xit('returns the name property of the object', () => { + it('returns the name property of the object', () => { expect( getName({ name: 'Fred', @@ -43,7 +43,7 @@ describe('getName', () => { }); describe('getProperty', () => { - xit('returns the given property', () => { + it('returns the given property', () => { expect( getProperty('age', { name: 'Fred', @@ -70,7 +70,7 @@ describe('hasProperty', () => { age: 23 }; - xit('returns true if the object has the given property', () => { + it('returns true if the object has the given property', () => { expect(hasProperty('age', fred)).toBe(true); expect(hasProperty('name', tom)).toBe(true); expect(hasProperty('favouriteColour', fred)).toBe(false); @@ -79,7 +79,7 @@ describe('hasProperty', () => { }); describe('isOver65', () => { - xit('returns true if the person is aged over 65', () => { + it('returns true if the person is aged over 65', () => { const jim = { name: 'Jim', age: 66 @@ -102,7 +102,7 @@ describe('isOver65', () => { }); describe('getAges', () => { - xit('returns the ages of each person in the array', () => { + it('returns the ages of each person in the array', () => { const jim = { name: 'Jim', age: 66 @@ -125,7 +125,7 @@ describe('getAges', () => { }); describe('findByName', () => { - xit('returns the person with the given name', () => { + it('returns the person with the given name', () => { const jim = { name: 'Jim', age: 66 @@ -147,7 +147,7 @@ describe('findByName', () => { }); describe('findHondas', () => { - xit('returns a list of cars manufactured by Honda', () => { + it('returns a list of cars manufactured by Honda', () => { const car1 = { manufacturer: 'Honda', year: 1997, @@ -179,7 +179,7 @@ describe('findHondas', () => { }); describe('averageAge', () => { - xit('returns the average age of the people in the list', () => { + it('returns the average age of the people in the list', () => { const john = { name: 'John', age: 60 @@ -207,7 +207,7 @@ describe('averageAge', () => { }); describe('createTalkingPerson', () => { - xit('returns a person who can introduce themselves', () => { + it('returns a person who can introduce themselves', () => { const bill = createTalkingPerson('Bill', 40); const catherine = createTalkingPerson('Catherine', 21); expect(bill).toEqual({ diff --git a/src/__tests__/strings.test.js b/src/__tests__/strings.test.js index e2c3c887..b19fd739 100644 --- a/src/__tests__/strings.test.js +++ b/src/__tests__/strings.test.js @@ -8,21 +8,21 @@ const { } = require('../strings'); describe('sayHello', () => { - xit('returns "Hello world!" when passed "world"', () => { + it('returns "Hello world!" when passed "world"', () => { expect(sayHello('world')).toEqual('Hello, world!'); }); - xit('returns "Hello MCR Codes!" when passed "MCR Codes"', () => { + it('returns "Hello MCR Codes!" when passed "MCR Codes"', () => { expect(sayHello('MCR Codes')).toEqual('Hello, MCR Codes!'); }); - xit('returns "Hello fsghjdfkhgf!" when passed "fsghjdfkhgf"', () => { + it('returns "Hello fsghjdfkhgf!" when passed "fsghjdfkhgf"', () => { expect(sayHello('fsghjdfkhgf')).toEqual('Hello, fsghjdfkhgf!'); }); }); describe('uppercase', () => { - xit('returns the uppercased string', () => { + it('returns the uppercased string', () => { expect(uppercase('abc')).toEqual('ABC'); expect(uppercase('def')).toEqual('DEF'); expect(uppercase('ghi')).toEqual('GHI'); @@ -30,7 +30,7 @@ describe('uppercase', () => { }); describe('lowercase', () => { - xit('returns the lowercased string', () => { + it('returns the lowercased string', () => { expect(lowercase('ABC')).toEqual('abc'); expect(lowercase('DEF')).toEqual('def'); expect(lowercase('GHI')).toEqual('ghi'); @@ -38,7 +38,7 @@ describe('lowercase', () => { }); describe('countCharacters', () => { - xit('returns the number of characters in the string', () => { + it('returns the number of characters in the string', () => { expect(countCharacters('fsfsgsfdg')).toEqual(9); expect(countCharacters('fsfsg')).toEqual(5); expect(countCharacters('')).toEqual(0); @@ -46,7 +46,7 @@ describe('countCharacters', () => { }); describe('firstCharacter', () => { - xit('returns the first character of the string', () => { + it('returns the first character of the string', () => { expect(firstCharacter('ABC')).toEqual('A'); expect(firstCharacter('DEF')).toEqual('D'); expect(firstCharacter('GHI')).toEqual('G'); @@ -54,11 +54,11 @@ describe('firstCharacter', () => { }); describe('firstCharacters', () => { - xit('returns the first 4 characters of the string', () => { + it('returns the first 4 characters of the string', () => { expect(firstCharacters('sd32fg45', 4)).toEqual('sd32'); }); - xit('returns the first 2 characters of the string', () => { + it('returns the first 2 characters of the string', () => { expect(firstCharacters('asd', 2)).toEqual('as'); }); }); diff --git a/src/arrays.js b/src/arrays.js index 822c49b7..bdbe6000 100644 --- a/src/arrays.js +++ b/src/arrays.js @@ -1,61 +1,64 @@ const getNthElement = (index, array) => { - // your code here + if (index >=array.length) { + return array [index-array.length] + } + return array[index]; }; -const arrayToCSVString = array => { - // your code here +const arrayToCSVString = array => {; + return array.join(","); }; const csvStringToArray = string => { - // your code here + return string.split(","); }; const addToArray = (element, array) => { - // your code here + array.push(element); }; const addToArray2 = (element, array) => { - // your code here + return array.concat(element); }; const removeNthElement = (index, array) => { - // your code here + array.splice (index,1); }; const numbersToStrings = numbers => { - // your code here + return numbers.map(String); }; const uppercaseWordsInArray = strings => { - // your code here + return strings.map(element => element.toUpperCase()); }; const reverseWordsInArray = strings => { - // your code here + return strings.map(strings => strings.split("").reverse().join("")); }; const onlyEven = numbers => { - // your code here + return numbers.filter(numbers => numbers % 2 === 0); }; const removeNthElement2 = (index, array) => { - // your code here + return array.filter((_,itemindex) => itemindex !== index) }; const elementsStartingWithAVowel = strings => { - // your code here + return strings.filter(strings => /^[aeiou]/i.test(strings)); }; const removeSpaces = string => { - // your code here + return string.replace(/\s/g, ''); }; const sumNumbers = numbers => { - // your code here + return numbers.reduce((total, item) => total + item); }; const sortByLastLetter = strings => { - // your code here + return strings.sort((a,b) => a.charCodeAt(a.length-1) - b.charCodeAt(b.length-1)); }; module.exports = { diff --git a/src/booleans.js b/src/booleans.js index 5ff6cb55..cd3af561 100644 --- a/src/booleans.js +++ b/src/booleans.js @@ -1,61 +1,79 @@ function negate(a) { - // your code here + return !a; }; function both(a, b) { - // your code here + return a && b; }; function either(a, b) { - // your code here + return a || b; }; function none(a, b) { - // your code here -}; + return !a && !b; +} function one(a, b) { - // your code here + return (a || b) && !(a && b); }; function truthiness(a) { - // your code here -}; + if (a) { + return true; + } + return false; +} function isEqual(a, b) { - // your code here + return a === b; }; function isGreaterThan(a, b) { - // your code here + return a > b; }; function isLessThanOrEqualTo(a, b) { - // your code here + return a <= b; }; function isOdd(a) { - // your code here + return Math.abs(a % 2) === 1; }; function isEven(a) { - // your code here + if (a % 2 === 0) { + return true; + } else { + return false; + } }; function isSquare(a) { - // your code here + return Math.sqrt(a) === Math.round(Math.sqrt(a)); }; function startsWith(char, string) { - // your code here + return string.charAt(0) === char; }; +// function containsVowels(string) { +// string = string.toLowerCase(); +// return string.indexOf("a") > -1 +// || string.indexOf("e") > -1 +// || string.indexOf("i") > -1 +// || string.indexOf("o") > -1 +// || string.indexOf("u") > -1 +// } function containsVowels(string) { - // your code here -}; - + return /[aeiou]/i.test(string); +} +// function isLowerCase(string) { +// const lowercasedString = string.toLowerCase(); +// return lowercasedString === string +// }; function isLowerCase(string) { - // your code here + return !/[A-Z]/.test(string) }; module.exports = { diff --git a/src/numbers.js b/src/numbers.js index d3eab646..61302a87 100644 --- a/src/numbers.js +++ b/src/numbers.js @@ -1,45 +1,47 @@ function add (a, b) { - // your code here + return a+b; } function subtract (a, b) { - // your code here +return a-b; } function multiply (a, b) { - // your code here + return a * b; } function divide (a, b) { - // your code here + return a / b; } function power (a, b) { - // your code here + return a ** b; } function round (a) { - // your code here + return Math.round (a); } function roundUp (a) { - // your code here + return Math.ceil (a); } function roundDown (a) { - // your code here + return Math.floor (a); } function absolute (a) { - // your code here + return Math.abs (a); } function quotient (a, b) { - // your code here + const divided = (a/b); + const quotient = Math.trunc(divided); + return quotient; } function remainder (a, b) { - // your code here + return a % b; } module.exports = { diff --git a/src/objects.js b/src/objects.js index 906eef8f..c4c0edb0 100644 --- a/src/objects.js +++ b/src/objects.js @@ -1,41 +1,56 @@ const createPerson = (name, age) => { - // your code here + return { + name: name, + age: age + } }; -const getName = object => { - // your code here -}; +function getName(object) { + return object.name; + } const getProperty = (property, object) => { - // your code here + return object[property]; }; const hasProperty = (property, object) => { - // your code here + return object.hasOwnProperty(property); }; const isOver65 = person => { - // your code here + return person.age > 65; }; const getAges = people => { - // your code here + return people.map(person => { + return person.age; + }); }; const findByName = (name, people) => { - // your code here + return people.find(person => person.name === name); }; const findHondas = cars => { - // your code here + return cars.filter(car => { + return car.manufacturer === 'Honda'; + }); }; const averageAge = people => { - // your code here -}; + const totalAge = people.reduce((previousAge, currentPerson) => { + return previousAge + currentPerson.age;}, 0); +return totalAge / people.length; + }; const createTalkingPerson = (name, age) => { - // your code here + return { + name, + age, + introduce(strangerName) { + return `Hi ${strangerName}, my name is ${this.name} and I am ${this.age}!`; + } + }; }; module.exports = { diff --git a/src/strings.js b/src/strings.js index ce02affa..da4394bc 100644 --- a/src/strings.js +++ b/src/strings.js @@ -1,26 +1,30 @@ -function sayHello (string) { - // your code here -}; - +function sayHello(string) { + const response = "Hello, " + string + "!"; + return response; + // return "Hello, " + string + "!"; + // return "Hello, ".concat(string).concat("!"); +} function uppercase (string) { - // your code here + let result = string.toLocaleUpperCase(); + return result; }; function lowercase (string) { - // your code here + let result = string.toLocaleLowerCase(); + return result; }; function countCharacters (string) { - // your code here + return string.length; }; function firstCharacter (string) { - // your code here + return string.charAt(0); }; function firstCharacters (string, n) { - // your code here -}; + return string.substring(0, n); +} module.exports = { sayHello,