8000 Merge branch 'main' into repeatstring_test_alternate_strings · josh-Fen/javascript-exercises@656d184 · GitHub
[go: up one dir, main page]

Skip to content

Commit 656d184

Browse files
authored
Merge branch 'main' into repeatstring_test_alternate_strings
2 parents 265c40f + d740f2d commit 656d184

File tree

5 files changed

+60
-54
lines changed

5 files changed

+60
-54
lines changed

04_removeFromArray/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ removeFromArray([1, 2, 3, 4], 3); // should remove 3 and return [1,2,4]
1010

1111
The first test on this one is fairly easy, but there are a few things to think about(or google) here for the later tests:
1212

13+
- you can manipulate the original array you pass into the function call or create a new array that is returned as the result.
1314
- how to remove a single element from an array
1415
- how to deal with multiple optional arguments in a javascript function
15-
- [Check this link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments). Scroll down to the bit about `Array.from` or the spread operator. - [Or this link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
16-
16+
- For more information, check out MDN's page on [function arguments](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments) - scroll down to the bit about `Array.from` or the spread operator. You can also check out MDN's page on [rest parameters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).

04_removeFromArray/removeFromArray.spec.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ describe('removeFromArray', () => {
77
test.skip('removes multiple values', () => {
88
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
99
});
10+
test.skip('removes multiple of the same value', () => {
11+
expect(removeFromArray([1, 2, 2, 3], 2)).toEqual([1, 3]);
12+
});
1013
test.skip('ignores non present values', () => {
1114
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
1215
});

04_removeFromArray/solution/removeFromArray-solution.spec.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ describe('removeFromArray', () => {
77
test('removes multiple values', () => {
88
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
99
});
10+
test('removes multiple of the same value', () => {
11+
expect(removeFromArray([1, 2, 2, 3], 2)).toEqual([1, 3]);
12+
});
1013
test('ignores non present values', () => {
1114
expect(removeFromArray([1, 2, 3, 4], 7, 'tacos')).toEqual([1, 2, 3, 4]);
1215
});

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ If you have a suggestion to improve an exercise, an idea for a new exercise, or
1313

1414
1. Fork and clone this repository. To learn how to fork a repository, see the GitHub documentation on how to [fork a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo).
1515
- Copies of repositories on your machine are called clones. If you need help cloning to your local environment you can learn how from the GitHub documentation on [cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository-from-github/cloning-a-repository).
16-
2. Before you start working on any exercises, you should first ensure you have the following installed:
16+
1. Before you start working on any exercises, you should first ensure you have the following installed:
1717
- **NPM**. You should have installed NPM already in our [Installing Node.js](https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/installing-node-js) lesson. Just in case you need to check, type `npm --version` in your terminal. If you get back `Command 'npm' not found, but can be installed with:`, **do not follow the instructions in the terminal** to install with `apt-get` as this causes permission issues. Instead, go back to the installation lesson and install Node with NVM by following the instructions there.
1818
- **Jest**. After cloning this repository to your local machine and installing NPM, go into the newly created directory (`cd javascript-exercises`) and run `npm install`. This will install Jest and set up the testing platform based on our preconfigured settings. (Note: if you get warnings that packages are out of date or contain vulnerabilities, you can safely ignore them for these exercises.)
19-
20-
3. Each exercise includes the following:
19+
20+
1. Each exercise includes the following:
2121

2222
- A markdown file with a description of the task, an empty (or mostly empty) JavaScript file, and a set of tests.
2323
- A `solutions` directory that contains a solution and the same test file with all of the tests unskipped.
2424

2525
To complete an exercise, you'll need to go to the exercise directory with `cd exerciseName` in the terminal and run `npm test exerciseName.spec.js`. This should run the test file and show you the output. When you first run a test, it will fail. This is by design! You must open the exercise file and write the code needed to get the test to pass.
26-
4. Some of the exercises have test conditions defined in their spec file as `test.skip` compared to `test`. This is purposeful. After you pass one `test`, you will change the next `test.skip` to `test` and test your code again. You'll do this until all conditions are satisfied. **All tests must pass at the same time**, and you should not have any `test.skip` instances by the time you finish an exercise.
27-
5. Once you successfully finish an exercise, check the `solutions` directory within each exercise to compare it with yours.
26+
1. Some of the exercises have test conditions defined in their spec file as `test.skip` compared to `test`. This is purposeful. After you pass one `test`, you will change the next `test.skip` to `test` and test your code again. You'll do this until all conditions are satisfied. **All tests must pass at the same time**, and you should not have any `test.skip` instances by the time you finish an exercise.
27+
1. Once you successfully finish an exercise, check the `solutions` directory within each exercise to compare it with yours.
2828
- You should not be checking the solution for an exercise until you finish it!
29-
- Keep in mind that TOP's solution is not the only solution. Generally as long as all of the tests pass, your solution should be fine.
30-
6. Do not submit your solutions to this repo, as any PRs that do so will be closed without merging.
29+
- If your solution differs wildly from TOP's solution (and still passes the exercise's requirements), that's completely fine. Do feel free to ask about it in our Discord if there are parts you do not understand.
30+
1. Do not submit your solutions to this repo, as any PRs that do so will be closed without merging.
3131

3232
**Note**: Due to the way Jest handles failed tests, it may return an exit code of 1 if any tests fail. NPM will interpret this as an error and you may see some `npm ERR!` messages after Jest runs. You can ignore these, or run your test with `npm test exerciseName.spec.js --silent` to supress the errors.
3333

package-lock.json

Lines changed: 45 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
0