solved 01-04

This commit is contained in:
Clem Fandango 2023-12-28 13:51:37 +01:00
parent f91f2f87d5
commit 447c47dfd8
9 changed files with 10202 additions and 3428 deletions

View File

@ -1,5 +1,5 @@
const helloWorld = function () { const helloWorld = function () {
return "hello world"; return "Hello, World!";
}; };
module.exports = helloWorld; module.exports = helloWorld;

View File

@ -1,5 +1,13 @@
const repeatString = function() { const repeatString = function (string, repititions) {
let newString = "";
if (repititions < 0) {
return "ERROR";
}
for (let i = 0; i < repititions; i++) {
newString += string;
}
return newString;
}; };
// Do not edit below this line // Do not edit below this line

View File

@ -1,37 +1,39 @@
const repeatString = require('./repeatString') const repeatString = require("./repeatString");
describe('repeatString', () => { describe("repeatString", () => {
test('repeats the string', () => { test("repeats the string", () => {
expect(repeatString('hey', 3)).toEqual('heyheyhey'); 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'); 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'); expect(repeatString("hey", 1)).toEqual("hey");
}); });
test.skip('repeats the string 0 times', () => { test("repeats the string 0 times", () => {
expect(repeatString('hey', 0)).toEqual(''); expect(repeatString("hey", 0)).toEqual("");
}); });
test.skip('returns ERROR with negative numbers', () => { test("returns ERROR with negative numbers", () => {
expect(repeatString('hey', -1)).toEqual('ERROR'); 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 /*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 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 equals a number between 0 to 999 (this number will change everytime you run
the test).*/ the test).*/
// DO NOT use Math.floor(Math.random() * 1000) in your code, // DO NOT use Math.floor(Math.random() * 1000) in your code,
// this test generates a random number, then passes it into your code with a function parameter. // this test generates a random number, then passes it into your code with a function parameter.
// If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3 // If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3
const number = Math.floor(Math.random() * 1000) const number = Math.floor(Math.random() * 1000);
/*The .match(/((hey))/g).length is a regex that will count the number of heys /*The .match(/((hey))/g).length is a regex that will count the number of heys
in the result, which if your function works correctly will equal the number that in the result, which if your function works correctly will equal the number that
was randomly generated. */ was randomly generated. */
expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); 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(''); expect(repeatString("", 10)).toEqual("");
}); });
}); });

View File

@ -1,5 +1,7 @@
const reverseString = function() { const reverseString = function (string) {
let splitString = string.split("");
return splitString.reverse().join("");
}; };
// Do not edit below this line // Do not edit below this line

View File

@ -1,18 +1,18 @@
const reverseString = require('./reverseString') const reverseString = require("./reverseString");
describe('reverseString', () => { describe("reverseString", () => {
test('reverses single word', () => { test("reverses single word", () => {
expect(reverseString('hello')).toEqual('olleh'); expect(reverseString("hello")).toEqual("olleh");
}); });
test.skip('reverses multiple words', () => { test("reverses multiple words", () => {
expect(reverseString('hello there')).toEqual('ereht olleh') 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') expect(reverseString("123! abc!")).toEqual("!cba !321");
}) });
test.skip('works with blank strings', () => { test("works with blank strings", () => {
expect(reverseString('')).toEqual('') expect(reverseString("")).toEqual("");
}) });
}); });

View File

@ -1,5 +1,17 @@
const removeFromArray = function() { const removeFromArray = function (array, ...removeElements) {
/* removeFromArray([1, 2, 3, 4], 3); // should remove 3 and return [1,2,4]
([1, 2, 3, 4], 3, 2) should return [1,4]
``` */
let newArray = [];
array.forEach((element) => {
if (!removeElements.includes(element)) {
newArray.push(element);
}
});
return newArray;
}; };
// Do not edit below this line // Do not edit below this line

View File

@ -1,25 +1,25 @@
const removeFromArray = require('./removeFromArray') const removeFromArray = require("./removeFromArray");
describe('removeFromArray', () => { describe("removeFromArray", () => {
test('removes a single value', () => { test("removes a single value", () => {
expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); 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]); 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]); 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]); 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([]); 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"]); 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]); expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
}); });
}); });

8996
package-lock.json generated

File diff suppressed because it is too large Load Diff

4522
yarn.lock Normal file

File diff suppressed because it is too large Load Diff