From 21a356f4666cc55c7ee96bd90198a9c8632d9f96 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Tue, 2 Jun 2020 10:47:55 +0200 Subject: [PATCH 1/9] Create JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 41 +++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Challenges/JS_scrimba_challenges.js diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js new file mode 100644 index 0000000..1032752 --- /dev/null +++ b/Challenges/JS_scrimba_challenges.js @@ -0,0 +1,41 @@ + +// Add border + +function addBorder(array) { + // write code here. + for(i = 0; i < array.length; i++) { + const wallStart = "*"; + const wallEnd = "*"; + array[i] = wallStart.concat(array[i], wallEnd); + } + array.unshift("*****"); + array.push("*****"); + + return array; +} + + + +/** +* Test Suite +*/ +describe('addBorder()', () => { + it('adds a border around entire application', () => { + // arrange + const strings = ['abc', 'ded']; + + // act + const result = addBorder(strings); + + // log + console.log("result: ", result); + + // assert + expect(result).toEqual( + ["*****", + "*abc*", + "*ded*", + "*****"] + ); + }) +}); From 276447232cb2860ac27fc111ff797fd42c2225b5 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Tue, 2 Jun 2020 13:58:23 +0200 Subject: [PATCH 2/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index 1032752..ca5df91 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,37 @@ +// Add two digits +function addTwoDigits(num) { + let digits = num.toString(); + let digitsArray = digits.split(''); + let count = 0; + for (i = 0; i < digitsArray.length; i++) { + let digitValue = parseInt(digitsArray[i],10); + count += digitValue; + } + return count; +} + + + +/** +* Test Suite +*/ +describe('addBorder()', () => { + it('take a two digit number and return the sum of their numbers', () => { + // arrange + const num = 29; + + // act + const result = addTwoDigits(num); + + // log + console.log("result: ", result); + + // assert + expect(result).toBe(11); + }); +}); + + // Add border From c6f822b85ec41280a9176e6d934c9b2ee184ed2b Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Tue, 2 Jun 2020 14:05:41 +0200 Subject: [PATCH 3/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index ca5df91..f39acd5 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,13 +1,24 @@ // Add two digits + function addTwoDigits(num) { let digits = num.toString(); let digitsArray = digits.split(''); + + //with a for loop let count = 0; for (i = 0; i < digitsArray.length; i++) { - let digitValue = parseInt(digitsArray[i],10); - count += digitValue; + //parse int to array + digitsArray[i] = parseInt(digitsArray[i],10); + //count version 1 + count += digitsArray[i]; } - return count; + + //with reduce + const reducer = (accumulator, currentValue) => accumulator + currentValue; + let result = digitsArray.reduce(reducer); + + return result; + } From 05221c7ebc9733630aa0bbcb50f804bffcbed755 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Wed, 3 Jun 2020 14:07:25 +0200 Subject: [PATCH 4/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 72 +++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index f39acd5..e51d350 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,75 @@ +// Find first duplicate + +function firstDuplicate(nums) { + // write code here. + let duplicate = -1; + let arrayObject = {}; + let comparingArray = []; + + /* Done with what I thought of */ + for (i = 0; i < nums.length; i++) { + if (comparingArray.includes(nums[i])) { + duplicate = nums[i]; + break; + } + else { + comparingArray.push(nums[i]); + } + } + + /* Done with hasOwnProperty */ + /* + for (i = 0; i < nums.length; i++) { + if (arrayObject.hasOwnProperty( nums[i] )) { + duplicate = nums[i]; + break; + } + else { + arrayObject = { + [nums[i]] : "hello", + } + } + } + */ + return duplicate; +} + + + +/** +* Test Suite +*/ +describe('firstDuplicate()', () => { + it('returns first duplicated value', () => { + // arrange + const nums = [2, 1, 3, 5, 3, 2]; + + // act + const result = firstDuplicate(nums); + + // log + console.log("result 1: ", result); + + // assert + expect(result).toBe(3); + }); + + it('returns -1 when no duplicated values', () => { + // arrange + const nums = [2, 1, 3, 5, 4, 6]; + + // act + const result = firstDuplicate(nums); + + // log + console.log("result 2: ", result); + + // assert + expect(result).toBe(-1); + }); +}); + + // Add two digits function addTwoDigits(num) { From 4eea13995cb9eb1f3e9eaf79a1f01c98708ccd4a Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Fri, 5 Jun 2020 13:03:46 +0200 Subject: [PATCH 5/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 83 +++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index e51d350..01ba3d7 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,86 @@ +// Sum all primes + +function sumAllPrimes(num) { + + let primesSum = 0; + + function isPrime(num) { + let isPrime = true; + for(var i = 2; i < num; i++) { + if ( num % i === 0 ) { + isPrime = false; + break; + } + } + return isPrime; + } + + for(var i = 2; i <= num; i++) { + if(isPrime(i)) { + primesSum += i; + } + } + + return primesSum; + + + + /* First try */ + /* + let counter = 0; + let primeSum = 0; + let currentNumber; + let primesArray = []; + let countArray = []; + + for(i = 2; i <= num; i++) { + countArray.push(i); + } + + for (i = 0; i < countArray.length; i++) { + let divisorsArray = []; + currentNum = countArray[i]; + countArray.forEach( + function(val,i) { + if (val < currentNum ) { + if( (currentNum % val) === 0) { + divisorsArray.push(val); + } + } + } + ); + if ( divisorsArray.length === 0) { + primesArray.push(currentNum); + primeSum += currentNum; + } + } + + return primeSum; + */ +} + + + +/** +* Test Suite +*/ +describe('sumAllPrimes()', () => { + it('adds all prime numbers up to input number', () => { + // arrange + const num = 10; + + // act + const result = sumAllPrimes(num); + + // log + console.log("result: ", result); + + // assert + expect(result).toBe(17); + }) +}); + + // Find first duplicate function firstDuplicate(nums) { From 593d704bb8a13d3e87b9b9fd36a9785fbd4902d2 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Fri, 5 Jun 2020 14:22:09 +0200 Subject: [PATCH 6/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index 01ba3d7..5d7d47f 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,58 @@ + +// Is every digit even? + +function evenDigitsOnly(number) { + // write code here. + let stringNumber = number.toString(); + let digitsArray = stringNumber.split(""); + digitsArray.forEach( function(val) { + parseInt(val,10); + }); + + function isEven(a) { + return ( a % 2 === 0 ); + } + + return digitsArray.every(isEven); + +} + + + +/** +* Test Suite +*/ +describe('evenDigitsOnly()', () => { + it('returns true when all digits are even', () => { + // arrange + const nums = 248622; + + // act + const result = evenDigitsOnly(nums); + + // log + console.log("result 1 : ", result); + + // assert + expect(result).toBe(true); + }); + + it('returns fale when any digits are odd', () => { + // arrange + const nums = 642386; + + // act + const result = evenDigitsOnly(nums); + + // log + console.log("result 2 : ", result); + + // assert + expect(result).toBe(false); + }); +}); + + // Sum all primes function sumAllPrimes(num) { From 8e9b061318840fcfc5f84e10e9ee2c101c9776a4 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Fri, 5 Jun 2020 14:28:13 +0200 Subject: [PATCH 7/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index 5d7d47f..8fc4a85 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,18 +1,16 @@ -// Is every digit even? - function evenDigitsOnly(number) { // write code here. let stringNumber = number.toString(); let digitsArray = stringNumber.split(""); - digitsArray.forEach( function(val) { - parseInt(val,10); + digitsArray.forEach( function(val,i) { + digitsArray[i] = parseInt(val,10); }); function isEven(a) { return ( a % 2 === 0 ); } - + return digitsArray.every(isEven); } @@ -53,6 +51,7 @@ describe('evenDigitsOnly()', () => { }); + // Sum all primes function sumAllPrimes(num) { From 933110b027bc3cb1c3a935e00ce49e4b6184fa19 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Sun, 7 Jun 2020 12:11:22 +0200 Subject: [PATCH 8/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index 8fc4a85..5763791 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,40 @@ +function makeArrayConsecutive(nums) { + // write code here. + nums.sort( function(a,b) { + return a - b; + }); + //let missingNums = []; + let missingNumsCounter = 0; + for (var i = nums[0]; i < nums[nums.length - 1] ; i ++ ) { + if (nums.indexOf(i) === -1 ) { + //missingNums.push(i); + missingNumsCounter ++; + } + } + return missingNumsCounter; +} + + + +/** +* Test Suite +*/ +describe('makeArrayConsecutive()', () => { + it('returns total missing numbers between smallest and largest number', () => { + // arrange + const nums = [6, 2, 3, 8]; + + // act + const result = makeArrayConsecutive(nums); + + // log + console.log("result: ", result); + + // assert + expect(result).toBe(3); + }) +}); + function evenDigitsOnly(number) { // write code here. From 043fe07e71d66e660f856979c2f12d5a87208f53 Mon Sep 17 00:00:00 2001 From: "Carmen L. Seva" <30651370+Clavinia@users.noreply.github.com> Date: Sun, 7 Jun 2020 13:40:43 +0200 Subject: [PATCH 9/9] Update JS_scrimba_challenges.js --- Challenges/JS_scrimba_challenges.js | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Challenges/JS_scrimba_challenges.js b/Challenges/JS_scrimba_challenges.js index 5763791..6c35f14 100644 --- a/Challenges/JS_scrimba_challenges.js +++ b/Challenges/JS_scrimba_challenges.js @@ -1,3 +1,49 @@ +function properNounCorrection(str) { + // write code here. + let firstLetter = str.slice(0,1).toUpperCase(); + let restOfWord = str.slice(1,str.length).toLowerCase(); + return firstLetter.concat(restOfWord); + + //return str.slice(0,1).toUpperCase().concat(str.slice(1,str.length).toLowerCase()); +} + + + +/** +* Test Suite +*/ +describe('properNounCorrection()', () => { + it('adds proper noun capitalization', () => { + // arrange + const str = 'pARiS'; + + // act + const result = properNounCorrection(str); + + // log + console.log("result 1: ", result); + + // assert + expect(result).toBe('Paris'); + }); + + it('properly cased words are still correct', () => { + // arrange + const str = 'John'; + + // act + const result = properNounCorrection(str); + + // log + console.log("result 2: ", result); + + // assert + expect(result).toBe('John'); + }); +}); + + + function makeArrayConsecutive(nums) { // write code here. nums.sort( function(a,b) {