mirror of
https://github.com/10h30/odin-javascript-exercises.git
synced 2026-06-05 15:09:09 +09:00
Rename folders with numbers and underscores
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Exercise 02 - repeatString
|
||||
|
||||
Write a function that simply repeats the string a given number of times:
|
||||
|
||||
```javascript
|
||||
repeatString('hey', 3) // returns 'heyheyhey'
|
||||
```
|
||||
|
||||
You will notice in this exercise that there are multiple tests (see in file `repeatString.spec.js`). Only the first test is currently enabled. So after making sure that this first one passes, enable the others one by one by deleting the `.skip` from the `test.skip()` function.
|
||||
|
||||
|
||||
## Hints
|
||||
|
||||
- Take note of the above function call- how exactly is it being called?
|
||||
|
||||
- You're going to want to use a loop for this one.
|
||||
|
||||
- Create a variable to hold the string you're going to return, create a loop that repeats the given number of times and add the given string to the result on each loop.
|
||||
|
||||
- If running `npm test repeatString.spec.js` returns results similar to the below:
|
||||
|
||||
```
|
||||
Test Suites: 1 passed, 1 total
|
||||
Tests: 6 skipped, 1 passed, 7 total
|
||||
```
|
||||
|
||||
- Make sure you have enabled the rest of the tests (see above).
|
||||
@@ -0,0 +1,5 @@
|
||||
const repeatString = function() {
|
||||
|
||||
};
|
||||
|
||||
module.exports = repeatString;
|
||||
@@ -0,0 +1,37 @@
|
||||
const repeatString = require('./repeatString')
|
||||
|
||||
describe('repeatString', () => {
|
||||
test('repeats the string', () => {
|
||||
expect(repeatString('hey', 3)).toEqual('heyheyhey');
|
||||
});
|
||||
test.skip('repeats the string many times', () => {
|
||||
expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey');
|
||||
});
|
||||
test.skip('repeats the string 1 times', () => {
|
||||
expect(repeatString('hey', 1)).toEqual('hey');
|
||||
});
|
||||
test.skip('repeats the string 0 times', () => {
|
||||
expect(repeatString('hey', 0)).toEqual('');
|
||||
});
|
||||
test.skip('returns ERROR with negative numbers', () => {
|
||||
expect(repeatString('hey', -1)).toEqual('ERROR');
|
||||
});
|
||||
test.skip('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
|
||||
the test).*/
|
||||
|
||||
// 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.
|
||||
// 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)
|
||||
/*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
|
||||
was randomaly generated. */
|
||||
expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number);
|
||||
});
|
||||
test.skip('works with blank strings', () => {
|
||||
expect(repeatString('', 10)).toEqual('');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user