Skip to content

Commit 4201fc4

Browse files
committed
L10n fr for first 6 exercises
(Hello world, HOF, map, filter, every/some, reduce)
1 parent 77dc25d commit 4201fc4

File tree

15 files changed

+293
-18
lines changed

15 files changed

+293
-18
lines changed

exercises/basic_every_some/exercise.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var lists = random.arrayOf(20, function() {
2626
})
2727
})
2828

29-
module.exports = runner.custom(function(fx, good, lists) {
29+
var exercise = module.exports = runner.custom(function(fx, good, lists) {
3030
var test = fx(good)
3131

3232
var goodLists = 0
@@ -35,5 +35,5 @@ module.exports = runner.custom(function(fx, good, lists) {
3535
test(list) && ++goodLists
3636
})
3737

38-
return 'found ' + goodLists + ' good lists!'
38+
return exercise.__('found_good_lists', goodLists)
3939
}).hideInput(good, lists)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Défi
2+
3+
Écrivez une fonction qui reçoit une liste d’utilisateurs valides, et renvoie une fonction qui, elle, retournera `true` si tous les utilisateurs qu’on lui passe sont dans la liste originellement fournie.
4+
5+
Vous n’aurez qu’à examiner la correspondance des propriétés `id`.
6+
7+
## Exemple
8+
9+
```js
10+
var goodUsers = [
11+
{ id: 1 },
12+
{ id: 2 },
13+
{ id: 3 }
14+
]
15+
16+
// `checkUsersValid` est la fonction que vous allez écrire
17+
var testAllValid = checkUsersValid(goodUsers)
18+
19+
testAllValid([
20+
{ id: 2 },
21+
{ id: 1 }
22+
])
23+
// => true
24+
25+
testAllValid([
26+
{ id: 2 },
27+
{ id: 4 },
28+
{ id: 1 }
29+
])
30+
// => false
31+
```
32+
33+
## Arguments
34+
35+
* `goodUsers` : une liste d’utilisateurs valides
36+
37+
Utilisez `Array#some()` et `Array#every()` pour vérifier que chaque utilisateur passé à la fonction que vous aurez générée existe dans le tableau initialement transmis à la fonction exportée.
38+
39+
## Conditions
40+
41+
* Do not use * N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
42+
* Ne créez aucune fonction superflue
43+
44+
## Ressources
45+
46+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/every
47+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/some
48+
49+
## Base de travail
50+
51+
```js
52+
function checkUsersValid(goodUsers) {
53+
return function allUsersValid(submittedUsers) {
54+
// VOTRE SOLUTION ICI
55+
};
56+
}
57+
58+
module.exports = checkUsersValid
59+
```

exercises/basic_every_some/problem.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Use array#some and Array#every to check every user passed to your returned funct
5050

5151
```js
5252
function checkUsersValid(goodUsers) {
53-
return function(submittedUsers) {
53+
return function allUsersValid(submittedUsers) {
5454
// SOLUTION GOES HERE
5555
};
5656
}

exercises/basic_every_some/solution/solution.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = function checkUsersValid(goodUsers) {
2-
return function(submittedUsers) {
2+
return function allUsersValid(submittedUsers) {
33
return submittedUsers.every(function(submittedUser) {
44
return goodUsers.some(function(goodUser) {
55
return goodUser.id === submittedUser.id
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Défi
2+
3+
Utilisez `Array#filter` pour écrire une fonction `getShortMessages()`
4+
5+
`getShortMessages()` reçoit un tableau d’objets équipés d’une propriété `message`, et renvoie un tableau des messages qui ont *moins de 50 caractères de long*.
6+
7+
Votre fonction doit renvoyer un tableau contenant les messages eux-mêmes, *sans leurs objets conteneurs*.
8+
9+
## Arguments
10+
11+
* `messages` : un tableau d’objets aléatoires ayant l’aspect suivant :
12+
13+
```js
14+
{
15+
message: 'Esse id amet quis eu esse aute officia ipsum.' // aléatoire
16+
}
17+
```
18+
19+
## Conditions
20+
21+
* N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
22+
* Ne créez aucune fonction superflue
23+
24+
## Conseil
25+
26+
* Essayez d’enchaîner des méthodes de `Array` !
27+
28+
## Exemple
29+
30+
```
31+
[ 'Tempor quis esse consequat sunt ea eiusmod.',
32+
'Id culpa ad proident ad nulla laborum incididunt.',
33+
'Ullamco in ea et ad anim anim ullamco est.',
34+
'Est ut irure irure nisi.' ]
35+
```
36+
37+
## Ressources
38+
39+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter
40+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map
41+
42+
## Base de travail
43+
44+
```js
45+
function getShortMessages(messages) {
46+
// VOTRE SOLUTION ICI
47+
}
48+
49+
module.exports = getShortMessages
50+
```

exercises/basic_filter/problem.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ Use Array#filter to write a function called `getShortMessages`.
33

44
`getShortMessages` takes an array of objects with '.message' properties and returns an array of messages that are *less than < 50 characters long*.
55

6+
The function should return an array containing the messages themselves, *without their containing object*.
7+
68
## Arguments
79

810
* messages: an Array of 10 to 100 random objects that look something like this:
@@ -24,9 +26,6 @@ Use Array#filter to write a function called `getShortMessages`.
2426

2527
## Example
2628

27-
The function should return an array containing the messages themselves, *without their containing object*.
28-
29-
e.g.
3029
```
3130
[ 'Tempor quis esse consequat sunt ea eiusmod.',
3231
'Id culpa ad proident ad nulla laborum incididunt.',

exercises/basic_map/problem.fr.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Défi
2+
3+
Convertissez le code suivant pour utiliser `Array#map` plutôt qu’une boucle :
4+
5+
```js
6+
function doubleAll(numbers) {
7+
var result = []
8+
for (var i = 0; i < numbers.length; i++) {
9+
result.push(numbers[i] * 2)
10+
}
11+
return result
12+
}
13+
14+
module.exports = doubleAll
15+
```
16+
17+
## Arguments
18+
19+
* `numbers` : Un tableau d’entiers
20+
21+
## Conditions
22+
23+
* Votre solution doit utiliser `Array.prototype.map`
24+
* N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
25+
* Ne créez aucune fonction superflue
26+
27+
## Ressources
28+
29+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map
30+
31+
## Base de travail
32+
33+
```js
34+
function doubleAll(numbers) {
35+
// VOTRE SOLUTION ICI
36+
}
37+
38+
module.exports = doubleAll
39+
```
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Défi
2+
3+
En partant d’un tableau de `String`s, utilisez `Array#reduce()` pour créer un objet qui contient, pour chaque `String` du tableau, le nombre de fois qu’elle y apparaît. Renvoyez l’objet directement (inutile de faire un `console.log()`).
4+
5+
## Exemple
6+
7+
```js
8+
var inputWords = ['Apple', 'Banana', 'Apple', 'Durian', 'Durian', 'Durian']
9+
10+
console.log(countWords(inputWords))
11+
12+
// =>
13+
// {
14+
// Apple: 2,
15+
// Banana: 1,
16+
// Durian: 3
17+
// }
18+
```
19+
20+
## Arguments
21+
22+
* `inputWords` : un tableau de `String`s aléatoires.
23+
24+
## Conditions
25+
26+
* N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
27+
* Ne créez aucune fonction superflue
28+
29+
## Ressources
30+
31+
* https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce
32+
* https://en.wikipedia.org/wiki/Reduce_(higher-order_function)
33+
34+
## Base de travail
35+
36+
```js
37+
function countWords(inputWords) {
38+
// VOTRE SOLUTION ICI
39+
}
40+
41+
module.exports = countWords
42+
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function countWords(arr) {
2+
return arr.reduce(function(countMap, word) {
3+
countMap[word] = ++countMap[word] || 1 // incrémenter ou initialiser à 1
4+
return countMap
5+
}, {}) // le 2e argument de reduce initialise `countMap` à `{}`
6+
}
7+
8+
module.exports = countWords
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Défi
2+
3+
Écrivez une fonction qui prend une `String` en entrée et la renvoie en majuscules.
4+
5+
## Arguments
6+
7+
* `input` : une `String` contenant un texte aléatoire (type lorem ipsum).
8+
9+
## Base de travail
10+
11+
```js
12+
function upperCaser(input) {
13+
// VOTRE SOLUTION ICI
14+
}
15+
16+
module.exports = upperCaser
17+
```

0 commit comments

Comments
 (0)