Skip to content

Commit 2f3e9dc

Browse files
committed
full update & cleanup in french
1 parent 70348b5 commit 2f3e9dc

File tree

8 files changed

+90
-52
lines changed

8 files changed

+90
-52
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
function camelize(str) {
22
return str
3-
.split('-') // my-long-word -> ['my', 'long', 'word']
3+
.split('-') // divise 'my-long-word' en tableau ['my', 'long', 'word']
44
.map(
5+
// capitalise les premières lettres de tous les éléments du tableau sauf le premier
6+
// convertit ['my', 'long', 'word'] en ['my', 'Long', 'Word']
57
(word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1)
6-
) // ['my', 'long', 'word'] -> ['my', 'Long', 'Word']
7-
.join(''); // ['my', 'Long', 'Word'] -> myLongWord
8+
)
9+
.join(''); // rejoint ['my', 'Long', 'Word'] en -> myLongWord
810
}

1-js/05-data-types/05-array-methods/11-array-unique/solution.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Let's walk the array items:
2-
- For each item we'll check if the resulting array already has that item.
3-
- If it is so, then ignore, otherwise add to results.
1+
Parcourons les éléments du tableau:
2+
- Pour chaque élément, nous vérifierons si le tableau résultant contient déjà cet élément.
3+
- S'il en est ainsi, alors ignorez-le, sinon ajoutez aux résultats.
44

55
```js run
66
function unique(arr) {
@@ -22,18 +22,18 @@ let strings = ["Hare", "Krishna", "Hare", "Krishna",
2222
alert( unique(strings) ); // Hare, Krishna, :-O
2323
```
2424

25-
The code works, but there's a potential performance problem in it.
25+
Le code fonctionne, mais il comporte un problème de performances potentiel.
2626

27-
The method `result.includes(str)` internally walks the array `result` and compares each element against `str` to find the match.
27+
La méthode `result.includes(str)` parcourt en interne le tableau `result` et compare chaque élément à `str` pour trouver la correspondance.
2828

29-
So if there are `100` elements in `result` and no one matches `str`, then it will walk the whole `result` and do exactly `100` comparisons. And if `result` is large, like `10000`, then there would be `10000` comparisons.
29+
Donc, s'il y a `100` éléments dans` result` et que personne ne correspond à `str`, alors il parcourra tout le `result` et fera exactement les `100` comparaisons. Et si `result` est grand, exemple `10000`, alors il y aura des `10000` comparaisons .
3030

31-
That's not a problem by itself, because JavaScript engines are very fast, so walk `10000` array is a matter of microseconds.
31+
Ce n'est pas un problème en soi, parce que les moteurs JavaScript sont très rapides, alors parcourir un tableau de `10000` éléments est une question de microsecondes.
3232

33-
But we do such test for each element of `arr`, in the `for` loop.
33+
Mais nous faisons ce test pour chaque élément de `arr`, dans la boucle` for`.
3434

35-
So if `arr.length` is `10000` we'll have something like `10000*10000` = 100 millions of comparisons. That's a lot.
35+
Donc, si `arr.length` vaut `10000`, nous aurons quelque chose comme `10000*10000` = 100 millions de comparaisons. C'est beaucoup.
3636

37-
So the solution is only good for small arrays.
37+
La solution n’est donc valable que pour les petits tableaux.
3838

39-
Further in the chapter <info:map-set-weakmap-weakset> we'll see how to optimize it.
39+
Plus loin dans le chapitre <info:map-set-weakmap-weakset>, nous verrons comment l'optimiser.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
```js run demo
2+
function filterRange(arr, a, b) {
3+
// ajout de crochets autour de l'expression pour une meilleure lisibilité
4+
return arr.filter(item => (a <= item && item <= b));
5+
}
6+
7+
let arr = [5, 3, 8, 1];
8+
9+
let filtered = filterRange(arr, 1, 4);
10+
11+
alert( filtered ); // 3,1 (valeur correspondate)
12+
13+
alert( arr ); // 5,3,8,1 (non modifié)
14+
```
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11

2-
32
function filterRangeInPlace(arr, a, b) {
43

54
for (let i = 0; i < arr.length; i++) {
65
let val = arr[i];
7-
8-
// remove if outside of the interval
6+
7+
// enleve si en dehors de l'intervalle
98
if (val < a || val > b) {
109
arr.splice(i, 1);
1110
i--;
1211
}
1312
}
1413

15-
}
14+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
```js run demo
2+
function filterRangeInPlace(arr, a, b) {
3+
4+
for (let i = 0; i < arr.length; i++) {
5+
let val = arr[i];
6+
7+
// enleve si en dehors de l'intervalle
8+
if (val < a || val > b) {
9+
arr.splice(i, 1);
10+
i--;
11+
}
12+
}
13+
14+
}
15+
16+
let arr = [5, 3, 8, 1];
17+
18+
filterRangeInPlace(arr, 1, 4); // supprime les nombres sauf de 1 à 4
19+
20+
alert( arr ); // [3, 1]
21+
```

1-js/05-data-types/05-array-methods/8-sort-objects/solution.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ let arr = [ john, pete, mary ];
1111

1212
sortByName(arr);
1313

14-
// now sorted is: [john, mary, pete]
14+
// maitenant trié il est: [john, mary, pete]
15+
alert(arr[0].name); // John
1516
alert(arr[1].name); // Mary
17+
alert(arr[2].name); // Pete
1618
```
17-

1-js/05-data-types/05-array-methods/8-sort-objects/task.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ let arr = [ john, pete, mary ];
1818
sortByName(arr);
1919

2020
// maintenant: [john, mary, pete]
21+
alert(arr[0].name); // John
2122
alert(arr[1].name); // Mary
23+
alert(arr[2].name); // Pete
2224
```
23-

1-js/05-data-types/05-array-methods/article.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,35 @@ let arrayLike = {
201201
alert( arr.concat(arrayLike) ); // 1,2,something,else
202202
```
203203

204+
## Itérer: forEach (pourChaque)
205+
206+
La méthode [arr.forEach] (mdn:js/Array/forEach) permet d’exécuter une fonction pour chaque élément du tableau.
207+
208+
La syntaxe:
209+
```js
210+
arr.forEach(function(item, index, array) {
211+
// ... fait quelques chose avec l'élément
212+
});
213+
```
214+
215+
Par exemple, cela montre chaque élément du tableau:
216+
217+
```js run
218+
// pour chaque élément appel l'alerte
219+
["Bilbo", "Gandalf", "Nazgul"].forEach(alert);
220+
```
221+
222+
Et ce code est plus élaboré sur leurs positions dans le tableau cible:
223+
224+
```js run
225+
["Bilbo", "Gandalf", "Nazgul"].forEach((item, index, array) => {
226+
alert(`${item} est à l'index ${index} dans ${array}`);
227+
});
228+
```
229+
230+
Le résultat de la fonction (s'il en renvoie) est jeté et ignoré.
231+
232+
204233
## Recherche dans le tableau
205234

206235
Ce sont des méthodes pour rechercher quelque chose dans un tableau.
@@ -247,6 +276,7 @@ La syntaxe est la suivante:
247276
```js
248277
let result = arr.find(function(item, index, array) {
249278
// devrait retourner true si l'élément correspond à ce que nous recherchons
279+
// pour le scénario de falsy(fausseté), renvoie undefined
250280
});
251281
```
252282

@@ -289,6 +319,7 @@ La syntaxe est à peu près identique à celle de `find`, mais elle renvoie un t
289319
```js
290320
let results = arr.filter(function(item, index, array) {
291321
// devrait retourner true si l'élément passe le filtre
322+
// retourne un tableau vide pour un scénario complet de falsy(fausseté)
292323
});
293324
```
294325

@@ -359,7 +390,6 @@ Littéralement, tous les éléments sont convertis en chaînes, puis comparés.
359390
Pour utiliser notre propre ordre de tri, nous devons fournir une fonction de deux arguments en tant qu'argument de `arr.sort()`.
360391

361392
La fonction devrait fonctionner comme ceci:
362-
363393
```js
364394
function compare(a, b) {
365395
if (a > b) return 1;
@@ -446,7 +476,6 @@ Il retourne également le tableau `arr` après l'inversion.
446476

447477
Voici une situation réele. Nous écrivons une application de messagerie et la personne entre dans la liste des destinataires délimités par des virgules: John, Pete, Mary. Mais pour nous, un tableau de noms serait beaucoup plus confortable qu'une simple chaîne. Alors, comment l'obtenir?
448478

449-
450479
La méthode [str.split(delim)](mdn:js/String/split) fait exactement cela. Il divise la chaîne en un tableau par le `délimiteur` donné.
451480

452481
Dans l'exemple ci-dessous, nous les séparons par une virgule suivie d'un espace:
@@ -587,35 +616,6 @@ Il est donc conseillé de toujours spécifier la valeur initiale.
587616
La méthode [arr.reduceRight](mdn:js/Array/reduceRight) fait la même chose, mais va de droite à gauche.
588617

589618

590-
## Répéter: forEach
591-
592-
La méthode [arr.forEach](mdn:js/Array/forEach) permet d'exécuter une fonction pour chaque élément du tableau.
593-
594-
La syntaxe:
595-
```js
596-
arr.forEach(function(item, index, array) {
597-
// ... fait quelque chose avec l'item
598-
});
599-
```
600-
601-
Par exemple, on montre chaque élément du tableau:
602-
603-
```js run
604-
// for each element call alert
605-
// pour chaque élément l'alerte est appelée
606-
["Bilbo", "Gandalf", "Nazgul"].forEach(alert);
607-
```
608-
609-
Et ce code est plus élaboré sur leurs positions dans le tableau cible:
610-
611-
```js run
612-
["Bilbo", "Gandalf", "Nazgul"].forEach((item, index, array) => {
613-
alert(`${item} est à l'index ${index} dans ${array}`);
614-
});
615-
```
616-
617-
Le résultat de la fonction (s'il en renvoie) est jeté et ignoré.
618-
619619
## Array.isArray
620620

621621
Les tableaux ne forment pas un type de langue distinct. Ils sont basés sur des objets.

0 commit comments

Comments
 (0)