diff --git a/01_helloWorld/helloWorld.js b/01_helloWorld/helloWorld.js index df27036..b542f3b 100644 --- a/01_helloWorld/helloWorld.js +++ b/01_helloWorld/helloWorld.js @@ -1,5 +1,5 @@ const helloWorld = function() { - return '' + return 'Hello, World!' }; module.exports = helloWorld; diff --git a/02_repeatString/repeatString.js b/02_repeatString/repeatString.js index 4359bbe..f800801 100644 --- a/02_repeatString/repeatString.js +++ b/02_repeatString/repeatString.js @@ -1,6 +1,23 @@ -const repeatString = function() { - +const repeatString = function(str, num) { + myStr = ""; + if (num < 0) { + myStr = "ERROR"; + } else { + for (let i = 0; i < num; i++) { + if (num < 0) { + myStr = "ERROR"; + } + myStr = myStr + str; + } + } + return myStr; }; +myTest = repeatString("hey", 5); +console.log(myTest); + +//var print_test = repeatString(); +//console.log(print_test) + // Do not edit below this line module.exports = repeatString; diff --git a/02_repeatString/repeatString.spec.js b/02_repeatString/repeatString.spec.js index 912ac20..4a8121b 100644 --- a/02_repeatString/repeatString.spec.js +++ b/02_repeatString/repeatString.spec.js @@ -4,19 +4,19 @@ describe('repeatString', () => { test('repeats the string', () => { expect(repeatString('hey', 3)).toEqual('heyheyhey'); }); - test.skip('repeats the string many times', () => { + test('repeats the string many times', () => { expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); }); - test.skip('repeats the string 1 times', () => { + test('repeats the string 1 times', () => { expect(repeatString('hey', 1)).toEqual('hey'); }); - test.skip('repeats the string 0 times', () => { + test('repeats the string 0 times', () => { expect(repeatString('hey', 0)).toEqual(''); }); - test.skip('returns ERROR with negative numbers', () => { + test('returns ERROR with negative numbers', () => { expect(repeatString('hey', -1)).toEqual('ERROR'); }); - test.skip('repeats the string a random amount of times', function () { + test('repeats the string a random amount of times', function () { /*The number is generated by using Math.random to get a value from between 0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it equals a number between 0 to 999 (this number will change everytime you run @@ -31,7 +31,7 @@ describe('repeatString', () => { was randomly generated. */ expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); }); - test.skip('works with blank strings', () => { + test('works with blank strings', () => { expect(repeatString('', 10)).toEqual(''); }); }); diff --git a/03_reverseString/reverseString.js b/03_reverseString/reverseString.js index b6d0a9a..56ad3a5 100644 --- a/03_reverseString/reverseString.js +++ b/03_reverseString/reverseString.js @@ -1,6 +1,14 @@ const reverseString = function(str) { - + var toArray = str.split(""); + var toReverse = toArray.reverse(); + var toJoin = toReverse.join(""); + return toJoin; }; +var stri = ("pedro almeida"); +myTest = reverseString(stri); + +console.log(myTest); + // Do not edit below this line module.exports = reverseString; diff --git a/03_reverseString/reverseString.spec.js b/03_reverseString/reverseString.spec.js index 8adb887..b51c50e 100644 --- a/03_reverseString/reverseString.spec.js +++ b/03_reverseString/reverseString.spec.js @@ -5,14 +5,14 @@ describe('reverseString', () => { expect(reverseString('hello')).toEqual('olleh'); }); - test.skip('reverses multiple words', () => { + test('reverses multiple words', () => { expect(reverseString('hello there')).toEqual('ereht olleh') }) - test.skip('works with numbers and punctuation', () => { + test('works with numbers and punctuation', () => { expect(reverseString('123! abc!')).toEqual('!cba !321') }) - test.skip('works with blank strings', () => { + test('works with blank strings', () => { expect(reverseString('')).toEqual('') }) }); diff --git a/04_removeFromArray/arrayTesting.js b/04_removeFromArray/arrayTesting.js new file mode 100644 index 0000000..81344a3 --- /dev/null +++ b/04_removeFromArray/arrayTesting.js @@ -0,0 +1,26 @@ +const myArray = [1,2,3,1,1,1,1]; +console.log(myArray); + +//const myArray2 = myArray[2]; +//console.log(myArray2); + +const a = 1; +const arrayLen = myArray.length; +const index = []; +let pos = 0; + +while (pos < arrayLen) { + pos = myArray.indexOf(a, pos); + if (pos === -1) break; + index.push(pos); + pos = pos + 1; +} + +console.log("The index is: " + index); + +for (var i = 0; i < arrayLen; i++) { + console.log(i); + myArray.splice(index[i, 1]); +} + +console.log(myArray); diff --git a/04_removeFromArray/removeFromArray.js b/04_removeFromArray/removeFromArray.js index 1bedeb0..5c5a586 100644 --- a/04_removeFromArray/removeFromArray.js +++ b/04_removeFromArray/removeFromArray.js @@ -1,6 +1,51 @@ -const removeFromArray = function() { +/* const removeFromArray = function(myArray, remArray) { + return myArray.filter(v => { + return !remArray.includes(v); + }); +} -}; +testArray = [1,2,3,4,3,1,4,4,6,54,2,1,4,5,3,2]; +remArray = [3,4,5,6]; +testPrint = removeFromArray(testArray, remArray); +console.log(testPrint); +// Do not edit below this line +module.exports = removeFromArray; */ +/* const removeFromArray = function(myArray, num1, num2) { + // Remove multiple values from array + arrayLen = myArray.length; + pos1 = myArray.indexOf(num1); + pos2 = myArray.indexOf(num2); + for (i = 0; i < arrayLen; i++) { + if (pos1 === -1) break; + myArray.splice(pos1, 1); + console.log("Length after first loop: " + myArray.length); + break; + } + for (i = 0; i < arrayLen; i++) { + if (pos2 === -1) break; + myArray.splice(pos2, 1); + console.log("Length after second loop: " + myArray.length) + break; + } + return myArray; +} */ + +const removeFromArray = function(myArray, ...args) { + arrayLen = myArray.length; + for (k = 0; k < arrayLen; k++) { + for (arg of args) { + inArray = myArray.includes(arg); + if (inArray == true) { + index = myArray.indexOf(arg); + myArray.splice(index, 1); + } + } + } +return myArray; +} +testArray = [1,2,3,4,3,4,3,2]; +testPrint = removeFromArray(testArray, 7, 3, 2, 4, 5, 6, "tomato"); +console.log(testPrint); // Do not edit below this line module.exports = removeFromArray; diff --git a/04_removeFromArray/removeFromArray.spec.js b/04_removeFromArray/removeFromArray.spec.js index 21f34cf..c17239a 100644 --- a/04_removeFromArray/removeFromArray.spec.js +++ b/04_removeFromArray/removeFromArray.spec.js @@ -4,22 +4,22 @@ describe('removeFromArray', () => { test('removes a single value', () => { expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); }); - test.skip('removes multiple values', () => { + test('removes multiple values', () => { expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]); }); - test.skip('ignores non present values', () => { + test('ignores non present values', () => { expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]); }); - test.skip('ignores non present values, but still works', () => { + test('ignores non present values, but still works', () => { expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]); }); - test.skip('can remove all values', () => { + test('can remove all values', () => { expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]); }); - test.skip('works with strings', () => { + test('works with strings', () => { expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]); }); - test.skip('only removes same type', () => { + test('only removes same type', () => { expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]); }); }); diff --git a/04_removeFromArray/removeFromArray_.js b/04_removeFromArray/removeFromArray_.js new file mode 100644 index 0000000..f5bef1f --- /dev/null +++ b/04_removeFromArray/removeFromArray_.js @@ -0,0 +1,35 @@ +const removeFromArray = function(myArray, remArray) { + index = []; + //myArray = myArray.sort(); + a1Len = myArray.length; + console.log("Length 1: " + a1Len); + a2Len = remArray.length; + console.log("Length 2: " + a2Len); + pos1 = 0; + pos2 = 0; + + while (pos2 < a2Len) { + while (pos1 < a1Len) { + pos1 = myArray.indexOf(remArray[pos2], pos1); + console.log("Position 1: " + pos1); + console.log("Position 2: " + pos2); + if (pos1 === -1) break; + + myArray.splice(pos1, 1); + pos1 = pos1 + 1; + } + pos2 = pos2 + 1; + } + + //index.push(myArray.indexOf(toRemove)); + return myArray; +} + +testArray = [1,2,3,4]; +remArray = [3,4]; +testPrint = removeFromArray(testArray, remArray); +console.log(testPrint); +//console.log(pos); +//console.log(testArray.length); +// Do not edit below this line +module.exports = removeFromArray; diff --git a/05_sumAll/sumAll.js b/05_sumAll/sumAll.js index 00880c7..10c91ec 100644 --- a/05_sumAll/sumAll.js +++ b/05_sumAll/sumAll.js @@ -1,6 +1,24 @@ -const sumAll = function() { - +const sumAll = function(num1, num2) { + if (num1 < 0 || num2 < 0 || typeof num1 != "number" || typeof num2 != "number") { + return 'ERROR'; + }else if (num1 > num2) { + var mySum = 0; + for (i = num2; i < num1; i++) { + mySum = mySum + i; + } + mySum += num1; + } else { + var mySum = 0; + for (i = num1; i < num2; i++) { + mySum = mySum + i; + } + mySum += num2; + } + + return mySum; }; +testPrint = sumAll(1, 4); +console.log(testPrint); // Do not edit below this line module.exports = sumAll; diff --git a/05_sumAll/sumAll.spec.js b/05_sumAll/sumAll.spec.js index 1a9fb7c..a171e5f 100644 --- a/05_sumAll/sumAll.spec.js +++ b/05_sumAll/sumAll.spec.js @@ -4,19 +4,19 @@ describe('sumAll', () => { test('sums numbers within the range', () => { expect(sumAll(1, 4)).toEqual(10); }); - test.skip('works with large numbers', () => { + test('works with large numbers', () => { expect(sumAll(1, 4000)).toEqual(8002000); }); - test.skip('works with larger number first', () => { + test('works with larger number first', () => { expect(sumAll(123, 1)).toEqual(7626); }); - test.skip('returns ERROR with negative numbers', () => { + test('returns ERROR with negative numbers', () => { expect(sumAll(-10, 4)).toEqual('ERROR'); }); - test.skip('returns ERROR with non-number parameters', () => { + test('returns ERROR with non-number parameters', () => { expect(sumAll(10, "90")).toEqual('ERROR'); }); - test.skip('returns ERROR with non-number parameters', () => { + test('returns ERROR with non-number parameters', () => { expect(sumAll(10, [90, 1])).toEqual('ERROR'); }); }); diff --git a/06_leapYears/leapYears.js b/06_leapYears/leapYears.js index 681eeef..87c92d0 100644 --- a/06_leapYears/leapYears.js +++ b/06_leapYears/leapYears.js @@ -1,6 +1,17 @@ -const leapYears = function() { +const leapYears = function(year) { + if (year % 400 === 0) { + return true; + } else if (year % 4 === 0) { + if (year % 100 === 0) { + return false; + } else { + return true; + } + } return false; +} -}; +testPrint = leapYears(400); +console.log(testPrint); // Do not edit below this line module.exports = leapYears; diff --git a/06_leapYears/leapYears.spec.js b/06_leapYears/leapYears.spec.js index 6fdaba9..2cd4110 100644 --- a/06_leapYears/leapYears.spec.js +++ b/06_leapYears/leapYears.spec.js @@ -4,19 +4,19 @@ describe('leapYears', () => { test('works with non century years', () => { expect(leapYears(1996)).toBe(true); }); - test.skip('works with non century years', () => { + test('works with non century years', () => { expect(leapYears(1997)).toBe(false); }); - test.skip('works with ridiculously futuristic non century years', () => { + test('works with ridiculously futuristic non century years', () => { expect(leapYears(34992)).toBe(true); }); - test.skip('works with century years', () => { + test('works with century years', () => { expect(leapYears(1900)).toBe(false); }); - test.skip('works with century years', () => { + test('works with century years', () => { expect(leapYears(1600)).toBe(true); }); - test.skip('works with century years', () => { + test('works with century years', () => { expect(leapYears(700)).toBe(false); }); }); diff --git a/10_fibonacci/README.md b/10_fibonacci/README.md index 9e65347..9d07f44 100644 --- a/10_fibonacci/README.md +++ b/10_fibonacci/README.md @@ -5,6 +5,6 @@ Create a function that returns a specific member of the Fibonacci sequence: > A series of numbers in which each number ( Fibonacci number ) is the sum of the two preceding numbers. The simplest is the series 1, 1, 2, 3, 5, 8, etc. ```javascript -fibonacci(4) // returns the 4th member of the series: 3 (1, 1, 2, 3) -fibonacci(6) // returns 8 +fibonacci(4); // returns the 4th member of the series: 3 (1, 1, 2, 3) +fibonacci(6); // returns 8 ``` diff --git a/package-lock.json b/package-lock.json index d9e2bee..d7caa3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1253,9 +1253,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001223", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz", - "integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==", + "version": "1.0.30001302", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001302.tgz", + "integrity": "sha512-YYTMO+tfwvgUN+1ZnRViE53Ma1S/oETg+J2lISsqi/ZTNThj3ZYBOKP2rHwJc37oCsPqAzJ3w2puZHn0xlLPPw==", "dev": true }, "capture-exit": { diff --git a/package.json b/package.json index 3c203fe..31043d4 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,10 @@ "eslintConfig": { "root": true }, - "jest": { + "jest": { "testPathIgnorePatterns": [ "generator-exercise/" ] - } + }, + "dependencies": {} }