From 6054624ef21090b1da6d3675d7e4de25f311b125 Mon Sep 17 00:00:00 2001 From: Clement Denis Date: Wed, 10 Jun 2020 21:13:19 +0200 Subject: [PATCH] prettify link text in markdown subject --- subjects/audits-at-home.en.md | 184 ++++++++++++++++----------------- subjects/biggie-smalls.en.md | 24 ++--- subjects/change.en.md | 66 ++++++------ subjects/circular.en.md | 26 ++--- subjects/currify.en.md | 42 ++++---- subjects/curry-entries.en.md | 96 ++++++++--------- subjects/cut-corners.en.md | 54 +++++----- subjects/date-is.en.md | 38 +++---- subjects/debounce.en.md | 24 ++--- subjects/deep-copy.en.md | 18 ++-- subjects/filter.en.md | 56 +++++----- subjects/find-expression.en.md | 60 +++++------ subjects/flat.en.md | 38 +++---- subjects/flow.en.md | 52 +++++----- subjects/for-each.en.md | 40 +++---- subjects/get-json.en.md | 56 +++++----- subjects/gougle-search.en.md | 90 ++++++++-------- subjects/greedy-url.en.md | 32 +++--- subjects/index-of.en.md | 64 ++++++------ subjects/interpolation.en.md | 90 ++++++++-------- subjects/invert.en.md | 18 ++-- subjects/ion-out.en.md | 22 ++-- subjects/its-a-match.en.md | 42 ++++---- subjects/keep-cut.en.md | 52 +++++----- subjects/match-cron.en.md | 64 ++++++------ subjects/min-max.en.md | 4 +- subjects/more-or-less.en.md | 30 +++--- subjects/mutability.en.md | 6 +- subjects/nasa.en.md | 30 +++--- subjects/primitives.en.md | 30 +++--- subjects/pyramid.en.md | 54 +++++----- subjects/race.en.md | 48 ++++----- subjects/repeat.en.md | 48 ++++----- subjects/replica.en.md | 24 ++--- subjects/returns.en.md | 30 +++--- subjects/series.en.md | 22 ++-- subjects/sign.en.md | 54 +++++----- subjects/triangle.en.md | 50 ++++----- 38 files changed, 887 insertions(+), 891 deletions(-) diff --git a/subjects/audits-at-home.en.md b/subjects/audits-at-home.en.md index eb82ab79..7d8ba4cf 100644 --- a/subjects/audits-at-home.en.md +++ b/subjects/audits-at-home.en.md @@ -1,92 +1,92 @@ -## How to do an audit from home - -### Introduction - -A little reminder first, - -Audits, as we have told you many times, are an essential part of leveling up and truly acquiring your skills -and knowledge. - -Normally, they must be done with your physical presence. -The idea is that they encourage the exchange between the auditors and the members of the group. - -If the project fails, the whole group will learn why. And then after all your audits are done you will retry. -During all those extra audits, you, as a group, will discuss about your failures with the auditors. -If the project succeed, you will be an inspiration for the auditors. -In both of those cases you will learn or you will teach. The roles will keep reversing almost every time. - -It is, ultimaly, those interactions that are essential for really learning; -To give and receive feedback, but also to see what you really know as an individual and what you do not. -This will increase your capacity to solve problems and your capacity to adapt, which is one of the most important -skill of a good programmer. - -Today, once again, we must adapt... -Knowledge is important but not as essential as health. - -We really wish all of you to stay safe and healthy at home. - -This is why we created a little guideline in how to conduct your audit from home. -There is a video here : [youtube.com/watch?v=J8g8P-IJLJw](https://www.youtube.com/watch?v=J8g8P-IJLJw) - -But we are also going to summarize the process. -So here we go. - -### Prerequisites for the team captain and the auditor - -- A program to communicate and livestream installed (like Discord [https://discordapp.com/](https://discordapp.com/) ) -- A program to allows the auditor to take charge of the computer - of the team captain installed (like teamViewer [teamviewer.com/](https://www.teamviewer.com/) ) - -### Prerequisite for the team captain - -The team captain must communicate : - -- The contact of his or her teammates to the auditor -- The git repository of the project to be reviewed (the link must be public or accessible for the auditor) -- The team captain must be logged in in his or her session to allow the auditor to start its audit - -### Prerequisite for the auditor - -- The auditor will need to create the group on the communication program -- The auditor will need to download the project repository -- The auditor, if the internet bandwith allows it, will livestream the process - -### Instructions - -1. Let the auditor establish the communication with the group members and the captain. - -2. Once all prequisites are done from the team captain and the auditor let the audit begin. - -3. If possible, the auditor starts the stream. - -4. The captain, after checking that the login is done on his or her computer, allows the auditor - to take control of its computer (with teamViewer for example) - -5. The auditor now has the control to start the audit on the computer of the captain. - The organization of the windows by the auditor might be the tricky part. We suggest - to see how we did it in the video if you find it difficult. - -6. The auditor conducts the audit, if the auditor can not live stream its audits, he or she - will then explain by voice (or writing in the chat) what he or she is doing to the rest of the group. - -7. The audit is conducted until all questions are validated or until a mistake is made. - -8. If a mistake is made the auditor can copy paste the commands that detected the mistakes. - -9. The group discusses as much as needed until the audit is completed. - -10. Once the audit is completed, all programs can be closed up. Say bye and thank you for your time and make the - necessary conclusions among the members of the group. - -### Conclusion - -Thank you for reading until the end. Stay safe. - -### Bonus - -Did you know that there is a nice `Live Share` extension on `vscode`? -This allows to do remote group programming easily. It might be an alternative solution -to the livestream if necessary. -Try it out! - -Stay safe everyone! Happy coding! +## How to do an audit from home + +### Introduction + +A little reminder first, + +Audits, as we have told you many times, are an essential part of leveling up and truly acquiring your skills +and knowledge. + +Normally, they must be done with your physical presence. +The idea is that they encourage the exchange between the auditors and the members of the group. + +If the project fails, the whole group will learn why. And then after all your audits are done you will retry. +During all those extra audits, you, as a group, will discuss about your failures with the auditors. +If the project succeed, you will be an inspiration for the auditors. +In both of those cases you will learn or you will teach. The roles will keep reversing almost every time. + +It is, ultimaly, those interactions that are essential for really learning; +To give and receive feedback, but also to see what you really know as an individual and what you do not. +This will increase your capacity to solve problems and your capacity to adapt, which is one of the most important +skill of a good programmer. + +Today, once again, we must adapt... +Knowledge is important but not as essential as health. + +We really wish all of you to stay safe and healthy at home. + +This is why we created a little guideline in how to conduct your audit from home. +There is a video here : [youtube.com/watch?v=J8g8P-IJLJw](https://www.youtube.com/watch?v=J8g8P-IJLJw) + +But we are also going to summarize the process. +So here we go. + +### Prerequisites for the team captain and the auditor + +- A program to communicate and livestream installed (like Discord [discordapp.com](https://discordapp.com/) ) +- A program to allows the auditor to take charge of the computer + of the team captain installed (like teamViewer [teamviewer.com](https://www.teamviewer.com/) ) + +### Prerequisite for the team captain + +The team captain must communicate : + +- The contact of his or her teammates to the auditor +- The git repository of the project to be reviewed (the link must be public or accessible for the auditor) +- The team captain must be logged in in his or her session to allow the auditor to start its audit + +### Prerequisite for the auditor + +- The auditor will need to create the group on the communication program +- The auditor will need to download the project repository +- The auditor, if the internet bandwith allows it, will livestream the process + +### Instructions + +1. Let the auditor establish the communication with the group members and the captain. + +2. Once all prequisites are done from the team captain and the auditor let the audit begin. + +3. If possible, the auditor starts the stream. + +4. The captain, after checking that the login is done on his or her computer, allows the auditor + to take control of its computer (with teamViewer for example) + +5. The auditor now has the control to start the audit on the computer of the captain. + The organization of the windows by the auditor might be the tricky part. We suggest + to see how we did it in the video if you find it difficult. + +6. The auditor conducts the audit, if the auditor can not live stream its audits, he or she + will then explain by voice (or writing in the chat) what he or she is doing to the rest of the group. + +7. The audit is conducted until all questions are validated or until a mistake is made. + +8. If a mistake is made the auditor can copy paste the commands that detected the mistakes. + +9. The group discusses as much as needed until the audit is completed. + +10. Once the audit is completed, all programs can be closed up. Say bye and thank you for your time and make the + necessary conclusions among the members of the group. + +### Conclusion + +Thank you for reading until the end. Stay safe. + +### Bonus + +Did you know that there is a nice `Live Share` extension on `vscode`? +This allows to do remote group programming easily. It might be an alternative solution +to the livestream if necessary. +Try it out! + +Stay safe everyone! Happy coding! diff --git a/subjects/biggie-smalls.en.md b/subjects/biggie-smalls.en.md index 3c8aa2b9..8d69d79a 100644 --- a/subjects/biggie-smalls.en.md +++ b/subjects/biggie-smalls.en.md @@ -1,12 +1,12 @@ -## Biggie Smalls - -### Instructions - -Create 2 variables -- `smalls` with the smallest possible number value -- `biggie` with the greatest possible number value - - -### Notions - -- [https://devdocs.io/javascript-number/](https://devdocs.io/javascript-number/) +## Biggie Smalls + +### Instructions + +Create 2 variables +- `smalls` with the smallest possible `number` value +- `biggie` with the greatest possible `number` value + + +### Notions + +- [devdocs.io/javascript-number](https://devdocs.io/javascript-number/) diff --git a/subjects/change.en.md b/subjects/change.en.md index 29025a97..0eda674e 100644 --- a/subjects/change.en.md +++ b/subjects/change.en.md @@ -1,33 +1,33 @@ -## Change - -### Instructions - -Create 2 functions: -- `get`: a function that takes a key and return the corresponding - value from the sourceObject - -- `set`: a function that takes a key and a value update the - value for the corresponding property of the sourceObject - and return the set value - - -### Notions - -- [https://nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) -- [https://nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) -- [https://nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) -- [https://nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -const sourceObject = { - num: 42, - bool: true, - str: 'some text', - log: console.log, -} -``` +## Change + +### Instructions + +Create 2 functions: +- `get`: a function that takes a key and return the corresponding + value from the sourceObject + +- `set`: a function that takes a key and a value update the + value for the corresponding property of the sourceObject + and return the set value + + +### Notions + +- [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) +- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) +- [nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) +- [nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +const sourceObject = { + num: 42, + bool: true, + str: 'some text', + log: console.log, +} +``` diff --git a/subjects/circular.en.md b/subjects/circular.en.md index 8dec3fa6..3a10c907 100644 --- a/subjects/circular.en.md +++ b/subjects/circular.en.md @@ -1,13 +1,13 @@ -## Circular - -### Instructions - -Create an object named `circular` that has a property named `circular` with -itself as the value - - -### Notions - -- [https://nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) -- [https://nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) -- [https://nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) +## Circular + +### Instructions + +Create an object named `circular` that has a property named `circular` with +itself as the value + + +### Notions + +- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) +- [nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) +- [nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) diff --git a/subjects/currify.en.md b/subjects/currify.en.md index 7459c749..39eca20f 100644 --- a/subjects/currify.en.md +++ b/subjects/currify.en.md @@ -1,21 +1,21 @@ -## Currify - -### Instructions - -Create the function `currify` that will curry any functions put as argument. - -example: -```js -const mult2 = (el1,el2) => el1 * el2 -console.log(mult2(2,2)) // result epected 4 - - -const mult2Curried = currify(mult2) - -console.log(mult2Curried(2)(2)) // result expected 4 -// (same result, with a function that has technically only one argument) -``` - -### Notions - -- [https://stackoverflow.com/questions/36314/what-is-currying](https://stackoverflow.com/questions/36314/what-is-currying) +## Currify + +### Instructions + +Create the function `currify` that will curry any functions put as argument. + +example: +```js +const mult2 = (el1,el2) => el1 * el2 +console.log(mult2(2,2)) // result epected 4 + + +const mult2Curried = currify(mult2) + +console.log(mult2Curried(2)(2)) // result expected 4 +// (same result, with a function that has technically only one argument) +``` + +### Notions + +- [stackoverflow.com/questions/36314/what-is-currying](https://stackoverflow.com/questions/36314/what-is-currying) diff --git a/subjects/curry-entries.en.md b/subjects/curry-entries.en.md index d3df0483..8782acb1 100644 --- a/subjects/curry-entries.en.md +++ b/subjects/curry-entries.en.md @@ -1,48 +1,48 @@ -## Curry Entries - -### Instructions - -This exercise consists in creating curry functions to apply in the objects -entries. -You will have to create the following curry functions: - -- `defaultCurry` that will curry two objects in witch the second object must -be the default object and returns a new object with the modifications applied -by the first object -- `mapCurry` that replicate the function `.map` -- `reduceCurry` that replicate the function `.reduce` -- `filterCurry` that replicate the function `.filter` - -You will also have to create for each curry function the following: - -- `reduceScore` that will return the total value of the scores - of the persons who use the force -- `filterForce` that will return the force users with `shootingScores` - equal or higher than 80 -- `mapAverage` that will return a new object with the propriety `averageScore` - that is the averages of the scores for each person - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) -- [https://devdocs.io/javascript/global_objects/array/map](https://devdocs.io/javascript/global_objects/array/map) -- [https://devdocs.io/javascript/global_objects/array/reduce](https://devdocs.io/javascript/global_objects/array/reduce) -- [https://devdocs.io/javascript/global_objects/object/entries](https://devdocs.io/javascript/global_objects/object/entries) -- [https://devdocs.io/javascript/global_objects/object/fromentries](https://devdocs.io/javascript/global_objects/object/fromentries) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -// prettier-ignore -const personnel = { - lukeSkywalker: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true }, - sabineWren: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false }, - zebOrellios: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false }, - ezraBridger: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true }, - calebDume: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true }, -} -``` +## Curry Entries + +### Instructions + +This exercise consists in creating curry functions to apply in the objects +entries. +You will have to create the following curry functions: + +- `defaultCurry` that will curry two objects in witch the second object must +be the default object and returns a new object with the modifications applied +by the first object +- `mapCurry` that replicate the function `.map` +- `reduceCurry` that replicate the function `.reduce` +- `filterCurry` that replicate the function `.filter` + +You will also have to create for each curry function the following: + +- `reduceScore` that will return the total value of the scores + of the persons who use the force +- `filterForce` that will return the force users with `shootingScores` + equal or higher than 80 +- `mapAverage` that will return a new object with the propriety `averageScore` + that is the averages of the scores for each person + + +### Notions + +- [devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) +- [devdocs.io/javascript/global_objects/array/map](https://devdocs.io/javascript/global_objects/array/map) +- [devdocs.io/javascript/global_objects/array/reduce](https://devdocs.io/javascript/global_objects/array/reduce) +- [devdocs.io/javascript/global_objects/object/entries](https://devdocs.io/javascript/global_objects/object/entries) +- [devdocs.io/javascript/global_objects/object/fromentries](https://devdocs.io/javascript/global_objects/object/fromentries) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +// prettier-ignore +const personnel = { + lukeSkywalker: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true }, + sabineWren: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false }, + zebOrellios: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false }, + ezraBridger: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true }, + calebDume: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true }, +} +``` diff --git a/subjects/cut-corners.en.md b/subjects/cut-corners.en.md index 4e69d35f..951aec6f 100644 --- a/subjects/cut-corners.en.md +++ b/subjects/cut-corners.en.md @@ -1,27 +1,27 @@ -## Cut Corners - -### Instructions - -Create a function for each rounding math functions: -- round (like `Math.round`) -- ceil (like `Math.ceil`) -- floor (like `Math.floor`) -- trunc (like `Math.trunc`) - -Some restrictions apply: -- You may not use strings conversion to do it -- No bitwise operator - - -### Notions - -- [https://devdocs.io/javascript/global_objects/math](https://devdocs.io/javascript/global_objects/math) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Math.round = Math.ceil = Math.floor = Math.trunc = undefined -``` +## Cut Corners + +### Instructions + +Create a function for each rounding math functions: +- round (like `Math.round`) +- ceil (like `Math.ceil`) +- floor (like `Math.floor`) +- trunc (like `Math.trunc`) + +Some restrictions apply: +- You may not use strings conversion to do it +- No bitwise operator + + +### Notions + +- [devdocs.io/javascript/global_objects/math](https://devdocs.io/javascript/global_objects/math) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Math.round = Math.ceil = Math.floor = Math.trunc = undefined +``` diff --git a/subjects/date-is.en.md b/subjects/date-is.en.md index 6d2ab236..836b97a6 100644 --- a/subjects/date-is.en.md +++ b/subjects/date-is.en.md @@ -1,19 +1,19 @@ -## Date Is - -### Instructions - -Create the following functions: -- `isValid`, this function must return false if its an Invalid Date -- `isAfter`, this function will receive two dates and return true if the first date is bigger then the second date -- `isBefore`, this function will receive two dates and return true if the first date is lesser then the second date -- `isFuture`, will return true if the date given as parameter is higher then the present date -- `isPast`, will return true if the date given as parameter less then the present date - - -### Notions - -- [https://date-fns.org/v2.14.0/docs/isValid](https://date-fns.org/v2.14.0/docs/isValid) -- [https://date-fns.org/v2.14.0/docs/isAfter](https://date-fns.org/v2.14.0/docs/isAfter) -- [https://date-fns.org/v2.14.0/docs/isBefore](https://date-fns.org/v2.14.0/docs/isBefore) -- [https://date-fns.org/v2.14.0/docs/isFuture](https://date-fns.org/v2.14.0/docs/isFuture) -- [https://date-fns.org/v2.14.0/docs/isPast](https://date-fns.org/v2.14.0/docs/isPast) +## Date Is + +### Instructions + +Create the following functions: +- `isValid`, this function must return false if its an Invalid Date +- `isAfter`, this function will receive two dates and return true if the first date is bigger then the second date +- `isBefore`, this function will receive two dates and return true if the first date is lesser then the second date +- `isFuture`, will return true if the date given as parameter is higher then the present date +- `isPast`, will return true if the date given as parameter less then the present date + + +### Notions + +- [date-fns.org/v2.14.0/docs/isValid](https://date-fns.org/v2.14.0/docs/isValid) +- [date-fns.org/v2.14.0/docs/isAfter](https://date-fns.org/v2.14.0/docs/isAfter) +- [date-fns.org/v2.14.0/docs/isBefore](https://date-fns.org/v2.14.0/docs/isBefore) +- [date-fns.org/v2.14.0/docs/isFuture](https://date-fns.org/v2.14.0/docs/isFuture) +- [date-fns.org/v2.14.0/docs/isPast](https://date-fns.org/v2.14.0/docs/isPast) diff --git a/subjects/debounce.en.md b/subjects/debounce.en.md index f0f725eb..c051a229 100644 --- a/subjects/debounce.en.md +++ b/subjects/debounce.en.md @@ -1,12 +1,12 @@ -## Debounce - -### Instructions - -Create two functions that will work like `_.debounce` from lodash -- `debounce`, this function doesn't need to take care of the options -- `opDebounce`, this function will take care of the `leading` options - - -### Notions - -- [https://lodash.com/docs/4.17.15#debounce](https://lodash.com/docs/4.17.15#debounce) +## Debounce + +### Instructions + +Create two functions that will work like `_.debounce` from lodash +- `debounce`, this function doesn't need to take care of the options +- `opDebounce`, this function will take care of the `leading` options + + +### Notions + +- [lodash.com/docs/4.17.15#debounce](https://lodash.com/docs/4.17.15#debounce) diff --git a/subjects/deep-copy.en.md b/subjects/deep-copy.en.md index 1464419d..4b1a786d 100644 --- a/subjects/deep-copy.en.md +++ b/subjects/deep-copy.en.md @@ -1,9 +1,9 @@ -## Deep Copy - -### Instructions - -Create a function called `deepCopy` that copy objects and arrays recursively. - -### Notions - -- [https://devdocs.io/javascript-object/](https://devdocs.io/javascript-object/) +## Deep Copy + +### Instructions + +Create a function called `deepCopy` that copy objects and arrays recursively. + +### Notions + +- [devdocs.io/javascript-object](https://devdocs.io/javascript-object/) diff --git a/subjects/filter.en.md b/subjects/filter.en.md index b88eb3be..f1a6887a 100644 --- a/subjects/filter.en.md +++ b/subjects/filter.en.md @@ -1,28 +1,28 @@ -## Filter - -### Instructions - -- Create a `filter` function that takes an array as first argument, a function as second, -and that works like the method [].filter - -- Create a `reject` function that takes an array as first argument, a function as second, -and that works like the reject function from lodash. - -- Create a `partition` function that takes an array as first argument, a function as second, -and that works like the partition function from lodash. - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) -- [https://lodash.com/docs/4.17.15#reject](https://lodash.com/docs/4.17.15#reject) -- [https://lodash.com/docs/4.17.15#partition](https://lodash.com/docs/4.17.15#partition) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Array.prototype.filter = undefined -``` +## Filter + +### Instructions + +- Create a `filter` function that takes an array as first argument, a function as second, +and that works like the method [].filter + +- Create a `reject` function that takes an array as first argument, a function as second, +and that works like the reject function from lodash. + +- Create a `partition` function that takes an array as first argument, a function as second, +and that works like the partition function from lodash. + + +### Notions + +- [devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) +- [lodash.com/docs/4.17.15#reject](https://lodash.com/docs/4.17.15#reject) +- [lodash.com/docs/4.17.15#partition](https://lodash.com/docs/4.17.15#partition) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Array.prototype.filter = undefined +``` diff --git a/subjects/find-expression.en.md b/subjects/find-expression.en.md index 6579a5ce..35677143 100644 --- a/subjects/find-expression.en.md +++ b/subjects/find-expression.en.md @@ -1,30 +1,30 @@ -## Find Expression - -### Instructions - -Create a function called `findExpression` that takes a number as parameter and returns a string - -- It will be given two constant variable `add4` and `mul2` - -- Your goal is to try to find a sequence, starting from the number 1, and repeatedly either adding 4 or multiplying 2 - that produces the number given has parameter. -For example, the number 8 you must first multiplying by 2 twice and then add 4. -It will look something like this `1 *2 *2 +4` - -- If the number can not be reached you should return `undefined` - - -### Notions - -- [https://nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) -- [https://nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -const add4 = '+4' -const mul2 = '*2' -``` +## Find Expression + +### Instructions + +Create a function called `findExpression` that takes a number as parameter and returns a string + +- It will be given two constant variable `add4` and `mul2` + +- Your goal is to try to find a sequence, starting from the number 1, and repeatedly either adding 4 or multiplying 2 + that produces the number given has parameter. +For example, the number 8 you must first multiplying by 2 twice and then add 4. +It will look something like this `1 *2 *2 +4` + +- If the number can not be reached you should return `undefined` + + +### Notions + +- [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +const add4 = '+4' +const mul2 = '*2' +``` diff --git a/subjects/flat.en.md b/subjects/flat.en.md index 4b4a0bd4..f48e04bc 100644 --- a/subjects/flat.en.md +++ b/subjects/flat.en.md @@ -1,19 +1,19 @@ -## Flat - -### Instructions - -Create the `flat` functions that works like the `.flat` array method - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/flat](https://devdocs.io/javascript/global_objects/array/flat) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Array.prototype.flat = undefined -``` +## Flat + +### Instructions + +Create the `flat` functions that works like the `.flat` array method + + +### Notions + +- [devdocs.io/javascript/global_objects/array/flat](https://devdocs.io/javascript/global_objects/array/flat) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Array.prototype.flat = undefined +``` diff --git a/subjects/flow.en.md b/subjects/flow.en.md index 30dc6432..60834569 100644 --- a/subjects/flow.en.md +++ b/subjects/flow.en.md @@ -1,28 +1,24 @@ -## Flow - -### Instructions - -Create the function `flow` that will works as the _.flow([funcs]) -from lodash. - -Example - -``` js - -const square = nbr => nbr * nbr -const add2Numbers = (nbr1, nbr2) => nbr1 + nbr2 - -const flowedFunctions = flow([add2numbers, square]) -flowedFunctions(2, 3) - -``` - -returns - -```js -25 -``` - -### Notions - -- [https://lodash.com/docs/4.17.15#flow](https://lodash.com/docs/4.17.15#flow) +## Flow + +### Instructions + +Create the function `flow` that will works as the \_.flow([funcs]) +from lodash. + + +### Example + +``` js + +const square = nbr => nbr * nbr +const add2Numbers = (nbr1, nbr2) => nbr1 + nbr2 + +const flowedFunctions = flow([add2numbers, square]) +flowedFunctions(2, 3) // -> 25 + +``` + + +### Notions + +- [lodash.com/docs/4.17.15#flow](https://lodash.com/docs/4.17.15#flow) diff --git a/subjects/for-each.en.md b/subjects/for-each.en.md index 7d32db5a..90cddac0 100644 --- a/subjects/for-each.en.md +++ b/subjects/for-each.en.md @@ -1,20 +1,20 @@ -## For Each - -### Instructions - -Create a `forEach` function that takes an array as first argument, a function as second, -and that works like the method .forEach - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/foreach](https://devdocs.io/javascript/global_objects/array/foreach) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Array.prototype.forEach = undefined -``` +## For Each + +### Instructions + +Create a `forEach` function that takes an array as first argument, a function as second, +and that works like the method .forEach + + +### Notions + +- [devdocs.io/javascript/global_objects/array/foreach](https://devdocs.io/javascript/global_objects/array/foreach) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Array.prototype.forEach = undefined +``` diff --git a/subjects/get-json.en.md b/subjects/get-json.en.md index 6a9bdd2d..60c5fadd 100644 --- a/subjects/get-json.en.md +++ b/subjects/get-json.en.md @@ -1,28 +1,28 @@ -## Get Json - -### Instructions - -In this exercise, we will focus on building complex async flows with promises. - -Create a `getJSON` function that takes 2 parameters: -- `path`, that will be the url called by your function -- `params` *optional*, that will be the search parameters appended to your url - -`getJSON` must construct a valid url with the `path` and stringified `params` -and call `fetch` with it. -If the response is not ok, your function must throw an error using -the response status message. - -The response body must then be read and parsed from json. - -The parsed object contains one of those 2 properties: -- `"data"` the actual data to return -- `"error"` the error message to throw - - -### Notions - -- [https://nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) -- [https://devdocs.io/dom/fetch_api/using_fetch](https://devdocs.io/dom/fetch_api/using_fetch) -- [https://devdocs.io/dom/urlsearchparams](https://devdocs.io/dom/urlsearchparams) -- [https://devdocs.io/javascript/global_objects/json](https://devdocs.io/javascript/global_objects/json) +## Get Json + +### Instructions + +In this exercise, we will focus on building complex async flows with promises. + +Create a `getJSON` function that takes 2 parameters: +- `path`, that will be the url called by your function +- `params` *optional*, that will be the search parameters appended to your url + +`getJSON` must construct a valid url with the `path` and stringified `params` +and call `fetch` with it. +If the response is not ok, your function must throw an error using +the response status message. + +The response body must then be read and parsed from json. + +The parsed object contains one of those 2 properties: +- `"data"` the actual data to return +- `"error"` the error message to throw + + +### Notions + +- [nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) +- [devdocs.io/dom/fetch_api/using_fetch](https://devdocs.io/dom/fetch_api/using_fetch) +- [devdocs.io/dom/urlsearchparams](https://devdocs.io/dom/urlsearchparams) +- [devdocs.io/javascript/global_objects/json](https://devdocs.io/javascript/global_objects/json) diff --git a/subjects/gougle-search.en.md b/subjects/gougle-search.en.md index fd9bc1fb..48b9402e 100644 --- a/subjects/gougle-search.en.md +++ b/subjects/gougle-search.en.md @@ -1,45 +1,45 @@ -## Gougle Search - -### Instructions - -Create the `queryServers` function, that takes 2 arguments: -- `serverName` a string of the name of the server -- `q` a string of the query given by the user - -You have to construct 2 urls, using `q` as a search parameter, -prepending a `'/'` and for the 2nd appending `'_backup'`. - -Then return the first value of those 2 calls - -```js -queryServers('pouet', 'hello+world') - // return the fastest of those 2 calls: - // -> getJSON('/pouet?q=hello+world') - // -> getJSON('/pouet_backup?q=hello+world') -``` - - -Create a `gougleSearch` function that takes a single query argument. -It must call `queryServers` in concurrently on 3 servers: -`'web'`, `'image'` and `'video'`. - -A timeout of 80milliseconds must be set for the whole operation. - -You must return the value from each servers in an object -using a the server name as key. - - -### Notions - -- [https://devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) -- [https://devdocs.io/javascript/global_objects/promise/all](https://devdocs.io/javascript/global_objects/promise/all) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -// fake `getJSON` function -let getJSON = async (url) => url -``` +## Gougle Search + +### Instructions + +Create the `queryServers` function, that takes 2 arguments: +- `serverName` a string of the name of the server +- `q` a string of the query given by the user + +You have to construct 2 urls, using `q` as a search parameter, +prepending a `'/'` and for the 2nd appending `'_backup'`. + +Then return the first value of those 2 calls + +```js +queryServers('pouet', 'hello+world') + // return the fastest of those 2 calls: + // -> getJSON('/pouet?q=hello+world') + // -> getJSON('/pouet_backup?q=hello+world') +``` + + +Create a `gougleSearch` function that takes a single query argument. +It must call `queryServers` in concurrently on 3 servers: +`'web'`, `'image'` and `'video'`. + +A timeout of 80milliseconds must be set for the whole operation. + +You must return the value from each servers in an object +using a the server name as key. + + +### Notions + +- [devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) +- [devdocs.io/javascript/global_objects/promise/all](https://devdocs.io/javascript/global_objects/promise/all) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +// fake `getJSON` function +let getJSON = async (url) => url +``` diff --git a/subjects/greedy-url.en.md b/subjects/greedy-url.en.md index cbf39b38..e8bfe634 100644 --- a/subjects/greedy-url.en.md +++ b/subjects/greedy-url.en.md @@ -1,16 +1,16 @@ -## Greedy Url - -### Instructions - -Write 3 functions : - -- `getURL` that returns an array with all valid URLs present in a data-set, http and https -- `greedyQuery` that returns URL with at least 3 or more parameters from all URLs that contain a query. -- `notSoGreedy` that returns URL with at least 2, but not more then 3 parameters from all URLs that contain a query. - -You can search for greedy quantifiers for help - - -### Notions - -- [https://github.com/ziishaned/learn-regex](https://github.com/ziishaned/learn-regex) +## Greedy Url + +### Instructions + +Write 3 functions : + +- `getURL` that returns an array with all valid URLs present in a data-set, http and https +- `greedyQuery` that returns URL with at least 3 or more parameters from all URLs that contain a query. +- `notSoGreedy` that returns URL with at least 2, but not more then 3 parameters from all URLs that contain a query. + +You can search for greedy quantifiers for help + + +### Notions + +- [github.com/ziishaned/learn-regex](https://github.com/ziishaned/learn-regex) diff --git a/subjects/index-of.en.md b/subjects/index-of.en.md index 4fbe5920..8922e5a6 100644 --- a/subjects/index-of.en.md +++ b/subjects/index-of.en.md @@ -1,32 +1,32 @@ -## Index Of - -### Instructions - -Create 3 functions: -- `indexOf` that returns the index of the first occurence of a value -- `lastIndexOf` that returns the index of the last occurence of a value -- `includes` that returns true if the value was found in the array - -> If a value is not found, the returned index is -1 - -> functions should have an array element as first argument, -> both `indexOf` and `lastIndexOf` take an additional `fromIndex` argument -> that allows you to begin searching from a specific index. - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/indexof](https://devdocs.io/javascript/global_objects/array/indexof) -- [https://devdocs.io/javascript/global_objects/array/lastindexof](https://devdocs.io/javascript/global_objects/array/lastindexof) -- [https://devdocs.io/javascript/global_objects/array/includes](https://devdocs.io/javascript/global_objects/array/includes) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Array.prototype.indexOf = undefined -Array.prototype.lastIndexOf = undefined -Array.prototype.includes = undefined -``` +## Index Of + +### Instructions + +Create 3 functions: +- `indexOf` that returns the index of the first occurence of a value +- `lastIndexOf` that returns the index of the last occurence of a value +- `includes` that returns true if the value was found in the array + +> If a value is not found, the returned index is -1 + +> functions should have an array element as first argument, +> both `indexOf` and `lastIndexOf` take an additional `fromIndex` argument +> that allows you to begin searching from a specific index. + + +### Notions + +- [devdocs.io/javascript/global_objects/array/indexof](https://devdocs.io/javascript/global_objects/array/indexof) +- [devdocs.io/javascript/global_objects/array/lastindexof](https://devdocs.io/javascript/global_objects/array/lastindexof) +- [devdocs.io/javascript/global_objects/array/includes](https://devdocs.io/javascript/global_objects/array/includes) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Array.prototype.indexOf = undefined +Array.prototype.lastIndexOf = undefined +Array.prototype.includes = undefined +``` diff --git a/subjects/interpolation.en.md b/subjects/interpolation.en.md index 1f1c2013..be020834 100644 --- a/subjects/interpolation.en.md +++ b/subjects/interpolation.en.md @@ -1,45 +1,45 @@ -## Interpolation - -### Instructions - -Create a function called `interpolation` that takes an object with 5 properties -`step`, `start`, `end`, `callback` and `duration`. -This function must calculate the interpolation points, (x, y), -from the `start` position to `end` position depending on the number of `steps`. -All the points must be calculated in the duration time. - -For each interpolation point you must execute and pass as parameters to the callback the interpolation point ([x, y]) - - -### Example - -``` -steps = 5 -start = 0 -end = 1 -duration = 10 - - t - | -10 |___________________. <- execute callback([1.0, 10]) - | | - | | - 8 |_______________. | - | | | - | | | - 6 |___________. | | - | | | | - | | | | - 4 |_______. | | | - | | | | | - | | | | | - 2 |___. | | | | - | | | | | | - |___|___|___|___|___|__d - 0 0.2 0.4 0.6 0.8 1 -``` - - -### Notions - -- [https://javascript.info/settimeout-setinterval](https://javascript.info/settimeout-setinterval) +## Interpolation + +### Instructions + +Create a function called `interpolation` that takes an object with 5 properties +`step`, `start`, `end`, `callback` and `duration`. +This function must calculate the interpolation points, (x, y), +from the `start` position to `end` position depending on the number of `steps`. +All the points must be calculated in the duration time. + +For each interpolation point you must execute and pass as parameters to the callback the interpolation point ([x, y]) + + +### Example + +``` +steps = 5 +start = 0 +end = 1 +duration = 10 + + t + | +10 |___________________. <- execute callback([1.0, 10]) + | | + | | + 8 |_______________. | + | | | + | | | + 6 |___________. | | + | | | | + | | | | + 4 |_______. | | | + | | | | | + | | | | | + 2 |___. | | | | + | | | | | | + |___|___|___|___|___|__d + 0 0.2 0.4 0.6 0.8 1 +``` + + +### Notions + +- [javascript.info/settimeout-setinterval](https://javascript.info/settimeout-setinterval) diff --git a/subjects/invert.en.md b/subjects/invert.en.md index 57d9da29..2f07a867 100644 --- a/subjects/invert.en.md +++ b/subjects/invert.en.md @@ -1,9 +1,9 @@ -## Invert - -### Instructions - -Create a function called `invert` that inverts the object keys and values. - -### Notions - -- [https://devdocs.io/javascript/global_objects/object](https://devdocs.io/javascript/global_objects/object) +## Invert + +### Instructions + +Create a function called `invert` that inverts the object keys and values. + +### Notions + +- [devdocs.io/javascript/global_objects/object](https://devdocs.io/javascript/global_objects/object) diff --git a/subjects/ion-out.en.md b/subjects/ion-out.en.md index ed28b82e..15a4b157 100644 --- a/subjects/ion-out.en.md +++ b/subjects/ion-out.en.md @@ -1,11 +1,11 @@ -## Ion Out - -### Instructions - -Make a function `ionOut` that receives a string and returns an array with every -word containing 'ion' following a t, without the 'ion'. - - -### Notions - -- [https://github.com/ziishaned/learn-regex#4-lookarounds](https://github.com/ziishaned/learn-regex#4-lookarounds) +## Ion Out + +### Instructions + +Make a function `ionOut` that receives a string and returns an array with every +word containing 'ion' following a t, without the 'ion'. + + +### Notions + +- [github.com/ziishaned/learn-regex#4-lookarounds](https://github.com/ziishaned/learn-regex#4-lookarounds) diff --git a/subjects/its-a-match.en.md b/subjects/its-a-match.en.md index 5256e946..a11c2c6f 100644 --- a/subjects/its-a-match.en.md +++ b/subjects/its-a-match.en.md @@ -1,21 +1,21 @@ -## Its A Match - -### Instructions - -Create 4 regular expression in variables: - -- `normal` matches with the expression 'hi'. - -- `begin` matches with the expression 'hi', - only when it is in the beginning. - -- `end` matches with the expression 'hi', - only when it is in the end. - -- `beginEnd` matches with the expression 'hi', - only when it is in the beginning and the end. - - -### Notions - -- [https://github.com/ziishaned/learn-regex#28-anchors](https://github.com/ziishaned/learn-regex#28-anchors) +## Its A Match + +### Instructions + +Create 4 regular expression in variables: + +- `normal` matches with the expression 'hi'. + +- `begin` matches with the expression 'hi', + only when it is in the beginning. + +- `end` matches with the expression 'hi', + only when it is in the end. + +- `beginEnd` matches with the expression 'hi', + only when it is in the beginning and the end. + + +### Notions + +- [github.com/ziishaned/learn-regex#28-anchors](https://github.com/ziishaned/learn-regex#28-anchors) diff --git a/subjects/keep-cut.en.md b/subjects/keep-cut.en.md index b4403dbc..83d6bd17 100644 --- a/subjects/keep-cut.en.md +++ b/subjects/keep-cut.en.md @@ -1,26 +1,26 @@ -## Keep Cut - -### Instructions - -Create the `cutFirst` function that takes a string -and remove the 2 first characters. - -Create the `cutLast` function that takes a string -and remove the 2 last characters. - -Create the `cutFirstLast` function that takes a string as parameter -and remove the 2 first characters and 2 last characters. - -Create a `keepFirst` function that takes a string as parameter -and return the string only keeping the 2 first characters. - -Create a `keepLast` function that takes a string as parameter -and return the string only keeping the 2 last characters. - -Create a `keepFirstLast` function that takes a string as parameter -and only keep 2 first characters and 2 last characters. - - -### Notions - -- [https://devdocs.io/javascript/global_objects/array/slice](https://devdocs.io/javascript/global_objects/array/slice) +## Keep Cut + +### Instructions + +Create the `cutFirst` function that takes a string +and remove the 2 first characters. + +Create the `cutLast` function that takes a string +and remove the 2 last characters. + +Create the `cutFirstLast` function that takes a string as parameter +and remove the 2 first characters and 2 last characters. + +Create a `keepFirst` function that takes a string as parameter +and return the string only keeping the 2 first characters. + +Create a `keepLast` function that takes a string as parameter +and return the string only keeping the 2 last characters. + +Create a `keepFirstLast` function that takes a string as parameter +and only keep 2 first characters and 2 last characters. + + +### Notions + +- [devdocs.io/javascript/global_objects/array/slice](https://devdocs.io/javascript/global_objects/array/slice) diff --git a/subjects/match-cron.en.md b/subjects/match-cron.en.md index 01147cce..a3060679 100644 --- a/subjects/match-cron.en.md +++ b/subjects/match-cron.en.md @@ -1,32 +1,32 @@ -## Match Cron - -### Instructions - -Create a function called `matchCron` it takes a valid cron schedule string -and a valid date. \ -It returns true if the date match the pattern - -> You only have to implement numbers and `*`. \ -> other complex patterns are not required. - -Only valid pattern will be tested. - -### Example - -```js -matchCron('9 * * * *', new Date('2020-05-30 18:09:00')) // -> true -matchCron('9 * * * *', new Date('2020-05-30 19:09:00')) // -> true -matchCron('9 * * * *', new Date('2020-05-30 19:21:00')) // -> false -// | | | | | -// | | | | +- Day of the Week (range: 1-7, 1 standing for Monday) -// | | | +--- Month of the Year (range: 1-12) -// | | +----- Day of the Month (range: 1-31) -// | +------- Hour (range: 0-23) -// +--------- Minute (range: 0-59) -``` - - -### Notions - -- [crontab.guru/](https://crontab.guru/) -- [devdocs.io/javascript/global_objects/date](https://devdocs.io/javascript/global_objects/date) +## Match Cron + +### Instructions + +Create a function called `matchCron` it takes a valid cron schedule string +and a valid date. \ +It returns true if the date match the pattern + +> You only have to implement numbers and `*`. \ +> other complex patterns are not required. + +Only valid pattern will be tested. + +### Example + +```js +matchCron('9 * * * *', new Date('2020-05-30 18:09:00')) // -> true +matchCron('9 * * * *', new Date('2020-05-30 19:09:00')) // -> true +matchCron('9 * * * *', new Date('2020-05-30 19:21:00')) // -> false +// | | | | | +// | | | | +- Day of the Week (range: 1-7, 1 standing for Monday) +// | | | +--- Month of the Year (range: 1-12) +// | | +----- Day of the Month (range: 1-31) +// | +------- Hour (range: 0-23) +// +--------- Minute (range: 0-59) +``` + + +### Notions + +- [crontab.guru](https://crontab.guru/) +- [devdocs.io/javascript/global_objects/date](https://devdocs.io/javascript/global_objects/date) diff --git a/subjects/min-max.en.md b/subjects/min-max.en.md index bbc0573f..fe371f76 100644 --- a/subjects/min-max.en.md +++ b/subjects/min-max.en.md @@ -15,8 +15,8 @@ and returns the lowest ### Notions -- [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) -- [nan-academy.github.io/js-training/examples/ternary.js](https://nan-academy.github.io/js-training/examples/ternary.js) +- [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) +- [nan-academy.github.io/js-training/examples/ternary](https://nan-academy.github.io/js-training/examples/ternary.js) - [devdocs.io/javascript/global_objects/math/min](https://devdocs.io/javascript/global_objects/math/min) - [devdocs.io/javascript/global_objects/math/max](https://devdocs.io/javascript/global_objects/math/max) diff --git a/subjects/more-or-less.en.md b/subjects/more-or-less.en.md index 5d6e0958..eae13eb5 100644 --- a/subjects/more-or-less.en.md +++ b/subjects/more-or-less.en.md @@ -1,15 +1,15 @@ -## More Or Less - -### Instructions - -Create 4 functions -- `more` that takes 1 argument and add 1 to it -- `less` that takes 1 argument and substract 1 to it -- `add` that takes 2 arguments and add them -- `sub` that takes 2 arguments and substract them - - -### Notions - -- [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) -- [nan-academy.github.io/js-training/examples/primitive-and-operators.js](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) +## More Or Less + +### Instructions + +Create 4 functions +- `more` that takes 1 argument and add 1 to it +- `less` that takes 1 argument and substract 1 to it +- `add` that takes 2 arguments and add them +- `sub` that takes 2 arguments and substract them + + +### Notions + +- [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) +- [nan-academy.github.io/js-training/examples/primitive-and-operators](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) diff --git a/subjects/mutability.en.md b/subjects/mutability.en.md index 1156948c..5aca0359 100644 --- a/subjects/mutability.en.md +++ b/subjects/mutability.en.md @@ -13,9 +13,9 @@ and set his country to `'FR'`. ### Notions -- [nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) -- [nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) -- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) +- [nan-academy.github.io/js-training/examples/set](https://nan-academy.github.io/js-training/examples/set.js) +- [nan-academy.github.io/js-training/examples/get](https://nan-academy.github.io/js-training/examples/get.js) +- [nan-academy.github.io/js-training/examples/data-structures](https://nan-academy.github.io/js-training/examples/data-structures.js) ### Code provided diff --git a/subjects/nasa.en.md b/subjects/nasa.en.md index b6782a22..5b5e5f9f 100644 --- a/subjects/nasa.en.md +++ b/subjects/nasa.en.md @@ -1,15 +1,15 @@ -## Nasa - -### Instructions - -Create a `nasa` function that takes a number `N` as a parameter and returns -a string with all numbers from 1 to the `N` separated by whitespace, with three exceptions: -- For numbers divisible by 3, add 'NA'. -- For numbers divisible by 5, add 'SA'. -- For the number that are divisible by 3 and 5 add 'NASA'. - - -### Notions - -- [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) -- [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) +## Nasa + +### Instructions + +Create a `nasa` function that takes a number `N` as a parameter and returns +a string with all numbers from 1 to the `N` separated by whitespace, with three exceptions: +- For numbers divisible by 3, add 'NA'. +- For numbers divisible by 5, add 'SA'. +- For the number that are divisible by 3 and 5 add 'NASA'. + + +### Notions + +- [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js) diff --git a/subjects/primitives.en.md b/subjects/primitives.en.md index f88faaf0..fa4ade9b 100644 --- a/subjects/primitives.en.md +++ b/subjects/primitives.en.md @@ -1,15 +1,15 @@ -## Primitives - -### Instructions - -Create a constant variable for each primitives: -- `str` for `String` -- `num` for `Number` -- `bool` for `Boolean` -- `undef` for `undefined` - - -### Notions - -- [nan-academy.github.io/js-training/examples/primitive-and-operators.js](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) -- [nan-academy.github.io/js-training/examples/variables.js](https://nan-academy.github.io/js-training/examples/variables.js) +## Primitives + +### Instructions + +Create a constant variable for each primitives: +- `str` for `String` +- `num` for `Number` +- `bool` for `Boolean` +- `undef` for `undefined` + + +### Notions + +- [nan-academy.github.io/js-training/examples/primitive-and-operators](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) +- [nan-academy.github.io/js-training/examples/variables](https://nan-academy.github.io/js-training/examples/variables.js) diff --git a/subjects/pyramid.en.md b/subjects/pyramid.en.md index 31bf63d2..b43893ed 100644 --- a/subjects/pyramid.en.md +++ b/subjects/pyramid.en.md @@ -1,27 +1,27 @@ -## Pyramid - -### Instructions - -Create a `pyramid` function that takes a string and a number as parameters -and return a pyramid constructed by the string passed as argument and with the depth -of the number passed as argument. - -Just like triangle - -### Output example - -- `*` character and depth of 5 : - -``` - * - *** - ***** - ******* -********* -``` -> No new line in last line - -### Notions - -- [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) -- [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) +## Pyramid + +### Instructions + +Create a `pyramid` function that takes a string and a number as parameters +and return a pyramid constructed by the string passed as argument and with the depth +of the number passed as argument. + +Just like triangle + +### Output example + +- `*` character and depth of 5 : + +``` + * + *** + ***** + ******* +********* +``` +> No new line in last line + +### Notions + +- [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js) diff --git a/subjects/race.en.md b/subjects/race.en.md index a87e619b..c16ea9c3 100644 --- a/subjects/race.en.md +++ b/subjects/race.en.md @@ -1,24 +1,24 @@ -## Race - -### Instructions - -Create a function `race` that works like `Promise.race` - -Create a function `some` that takes an array of promises or values -and a number and return the first resolved values up to the number given. -> Empty array or a count of 0 return a promise resolving to `undefined` - - -### Notions - -- [nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) -- [devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Promise.race = undefined -``` +## Race + +### Instructions + +Create a function `race` that works like `Promise.race` + +Create a function `some` that takes an array of promises or values +and a number and return the first resolved values up to the number given. +> Empty array or a count of 0 return a promise resolving to `undefined` + + +### Notions + +- [nan-academy.github.io/js-training/examples/promise](https://nan-academy.github.io/js-training/examples/promise.js) +- [devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Promise.race = undefined +``` diff --git a/subjects/repeat.en.md b/subjects/repeat.en.md index 45740c19..2d9d2138 100644 --- a/subjects/repeat.en.md +++ b/subjects/repeat.en.md @@ -1,24 +1,24 @@ -## Repeat - -### Instructions - -Create a `repeat` function that takes a string and a number as parameters -and return the repeated string by the given number -Like the method [developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat) -Of course you may not use the method directly - - -### Notions - -- [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) -- [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) -- [devdocs.io/javascript/global_objects/string/repeat](https://devdocs.io/javascript/global_objects/string/repeat) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -String.prototype.repeat = undefined -``` +## Repeat + +### Instructions + +Create a `repeat` function that takes a string and a number as parameters +and return the repeated string by the given number +Like the method [developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat) +Of course you may not use the method directly + + +### Notions + +- [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js) +- [devdocs.io/javascript/global_objects/string/repeat](https://devdocs.io/javascript/global_objects/string/repeat) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +String.prototype.repeat = undefined +``` diff --git a/subjects/replica.en.md b/subjects/replica.en.md index 04301e58..f098b5e9 100644 --- a/subjects/replica.en.md +++ b/subjects/replica.en.md @@ -1,12 +1,12 @@ -## Replica - -### Instructions - -Create a function called `replica` that allows you to deep assign the values of all properties from one or more -objects to a target object. - -Attention with the shallow copies. - -### Notions - -- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) +## Replica + +### Instructions + +Create a function called `replica` that allows you to deep assign the values of all properties from one or more +objects to a target object. + +Attention with the shallow copies. + +### Notions + +- [nan-academy.github.io/js-training/examples/data-structures](https://nan-academy.github.io/js-training/examples/data-structures.js) diff --git a/subjects/returns.en.md b/subjects/returns.en.md index 02b07266..f86069d7 100644 --- a/subjects/returns.en.md +++ b/subjects/returns.en.md @@ -1,15 +1,15 @@ -## Returns - -### Instructions - -Create the following functions: - -- `id` that takes one argument and return it -- `getLength` that takes an array or a string and return its length - - -### Notions - -- [https://nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) -- [https://nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) -- [https://nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) +## Returns + +### Instructions + +Create the following functions: + +- `id` that takes one argument and return it +- `getLength` that takes an array or a string and return its length + + +### Notions + +- [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) +- [nan-academy.github.io/js-training/examples/data-structures](https://nan-academy.github.io/js-training/examples/data-structures.js) +- [nan-academy.github.io/js-training/examples/get](https://nan-academy.github.io/js-training/examples/get.js) diff --git a/subjects/series.en.md b/subjects/series.en.md index 0c66a7c3..a0bf3873 100644 --- a/subjects/series.en.md +++ b/subjects/series.en.md @@ -1,11 +1,11 @@ -## Series - -### Instructions - -Create a function `series` that works takes an array of async functions. -It must execute them in series and return the results in order. - - -### Notions - -- [nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) +## Series + +### Instructions + +Create a function `series` that works takes an array of async functions. +It must execute them in series and return the results in order. + + +### Notions + +- [nan-academy.github.io/js-training/examples/promise](https://nan-academy.github.io/js-training/examples/promise.js) diff --git a/subjects/sign.en.md b/subjects/sign.en.md index c7b8771d..af68bfd0 100644 --- a/subjects/sign.en.md +++ b/subjects/sign.en.md @@ -1,27 +1,27 @@ -## Sign - -### Instructions - -Create the `sign` function that takes one number argument -and return 1 if the number is positive, -1 if the number is negative -and 0 if the number is exactly 0 -You must not just use `Math.sign`, make your own. - -Create the `sameSign` function that takes 2 numbers as arguments and return true -if they both have the same sign, or false otherwise. - - -### Notions - -- [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) -- [nan-academy.github.io/js-training/examples/if-else.js](https://nan-academy.github.io/js-training/examples/if-else.js) -- [devdocs.io/javascript/global_objects/math/sign](https://devdocs.io/javascript/global_objects/math/sign) - - -### Code provided - -> all code provided will be added to your solution and doesn't need to be submited. - -```js -Math.sign = undefined -``` +## Sign + +### Instructions + +Create the `sign` function that takes one number argument +and return 1 if the number is positive, -1 if the number is negative +and 0 if the number is exactly 0 +You must not just use `Math.sign`, make your own. + +Create the `sameSign` function that takes 2 numbers as arguments and return true +if they both have the same sign, or false otherwise. + + +### Notions + +- [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) +- [nan-academy.github.io/js-training/examples/if-else](https://nan-academy.github.io/js-training/examples/if-else.js) +- [devdocs.io/javascript/global_objects/math/sign](https://devdocs.io/javascript/global_objects/math/sign) + + +### Code provided + +> all code provided will be added to your solution and doesn't need to be submited. + +```js +Math.sign = undefined +``` diff --git a/subjects/triangle.en.md b/subjects/triangle.en.md index 1d8c4a1d..77d945e9 100644 --- a/subjects/triangle.en.md +++ b/subjects/triangle.en.md @@ -1,25 +1,25 @@ -## Triangle - -### Instructions - -Create a `triangle` function that takes a string and a number as parameters -and return a triangle constructed by the string passed as argument and with the depth -of the number passed as argument. - -### Output example - -- `*` character and depth of 5: - -``` -* -** -*** -**** -***** -``` -> No new line in last line - -### Notions - -- [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) -- [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) +## Triangle + +### Instructions + +Create a `triangle` function that takes a string and a number as parameters +and return a triangle constructed by the string passed as argument and with the depth +of the number passed as argument. + +### Output example + +- `*` character and depth of 5: + +``` +* +** +*** +**** +***** +``` +> No new line in last line + +### Notions + +- [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js)