You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/05-data-types/05-array-methods/11-array-unique/solution.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,11 +26,11 @@ Le code fonctionne, mais il comporte un problème de performances potentiel.
26
26
27
27
La méthode `result.includes(str)` parcourt en interne le tableau `result` et compare chaque élément à `str` pour trouver la correspondance.
28
28
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 .
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 .
30
30
31
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.
32
32
33
-
Mais nous faisons ce test pour chaque élément de `arr`, dans la boucle`for`.
33
+
Mais nous faisons ce test pour chaque élément de `arr`, dans la boucle`for`.
34
34
35
35
Donc, si `arr.length` vaut `10000`, nous aurons quelque chose comme `10000*10000` = 100 millions de comparaisons. C'est beaucoup.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/05-array-methods/7-map-objects/task.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ importance: 5
4
4
5
5
# Map en objets
6
6
7
-
Vous avez un tableau d'objets `user`, chacun ayant`name`, `surname` et`id`.
7
+
Vous avez un tableau d'objets `user`, chacun ayant`name`, `surname` et`id`.
8
8
9
9
Ecrivez le code pour créer un autre tableau à partir de celui-ci, avec les objets `id` et `fullName`, où `fullName` est généré à partir de `name` et `surname`.
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/01-recursion/article.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -185,7 +185,7 @@ Voici la pile de contexte lorsque nous sommes entrés dans le sous-appel `pow(2,
185
185
186
186
Le nouveau contexte d'exécution actuel est en haut (et en gras) et les contextes précédemment mémorisés sont en dessous.
187
187
188
-
Quand on termine le sous-appel -- il est facile de reprendre le contexte précédent, car il conserve les deux variables et l'emplacement exact du code où il s'est arrêté.
188
+
Quand on termine le sous-appel -- il est facile de reprendre le contexte précédent, car il conserve les deux variables et l'emplacement exact du code où il s'est arrêté.
189
189
190
190
```smart
191
191
Ici, dans l'image, nous utilisons le mot "line", comme dans notre exemple, il n'y a qu'un seul sous-appel en ligne, mais généralement une seule ligne de code peut contenir plusieurs sous-appels, comme `pow(…) + pow(…) + somethingElse(…)`.
@@ -339,7 +339,7 @@ Essayons la récursion.
339
339
Comme nous pouvons le constater, lorsque notre fonction demande à un département de faire la somme, il existe deux cas possibles:
340
340
341
341
1. S’il s’agit d’un "simple" département avec un *tableau* de personnes, nous pouvons alors additionner les salaires en une simple boucle.
342
-
2. Ou bien *c'est un objet* avec `N` sous-départements -- alors nous pouvons faire des appels`N` récursifs pour obtenir la somme de chaque sous-étape et combiner les résultats.
342
+
2. Ou bien *c'est un objet* avec `N` sous-départements -- alors nous pouvons faire des appels`N` récursifs pour obtenir la somme de chaque sous-étape et combiner les résultats.
343
343
344
344
Le premier cas est la base de la récursivité, le cas trivial, lorsque nous obtenons un tableau.
345
345
@@ -385,7 +385,7 @@ On peut facilement voir le principe: pour un objet `{...}` les sous-appels sont
385
385
386
386
Notez que le code utilise des fonctionnalités intelligentes que nous avons déjà abordées:
387
387
388
-
- La méthode `arr.reduce` a été expliquée dans le chapitre <info:array-methods> pour obtenir la somme du tableau.
388
+
- La méthode `arr.reduce` a été expliquée dans le chapitre <info:array-methods> pour obtenir la somme du tableau.
389
389
- La boucle `for(val of Object.values(obj))` itérer sur les valeurs d'objet:`Object.values` retourne un tableau d'eux-mêmes.
Ici, nous pouvons voir encore plus clairement qu'il y a plusieurs objets, chacun ayant les valeurs `value` et`next` pointant vers le voisin. La variable `list` est le premier objet de la chaîne. Par conséquent, en suivant les pointeurs `next`, nous pouvons atteindre n'importe quel élément.
465
+
Ici, nous pouvons voir encore plus clairement qu'il y a plusieurs objets, chacun ayant les valeurs `value` et`next` pointant vers le voisin. La variable `list` est le premier objet de la chaîne. Par conséquent, en suivant les pointeurs `next`, nous pouvons atteindre n'importe quel élément.
466
466
467
467
La liste peut être facilement divisée en plusieurs parties et ultérieurement réunie:
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,4 +52,4 @@ function f(b) {
52
52
}
53
53
```
54
54
55
-
Ce `f` sera utilisé lors du prochain appel et se renvera lui-même autant de fois que nécessaire. Ensuite, lorsqu'il est utilisé sous forme de nombre ou de chaîne de caractères, le `toString` renvoie le `currentSum`. Nous pourrions aussi utiliser `Symbol.toPrimitive` ou`valueOf` ici pour la conversion.
55
+
Ce `f` sera utilisé lors du prochain appel et se renvera lui-même autant de fois que nécessaire. Ensuite, lorsqu'il est utilisé sous forme de nombre ou de chaîne de caractères, le `toString` renvoie le `currentSum`. Nous pourrions aussi utiliser `Symbol.toPrimitive` ou`valueOf` ici pour la conversion.
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/08-settimeout-setinterval/article.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -291,11 +291,12 @@ Pour le JavaScript côté serveur, cette limitation n'existe pas, et il existe d
291
291
- Pour annuler l'exécution, nous devons appeler `clearInterval/clearTimeout` avec la valeur renvoyée par `setInterval/setTimeout`.
292
292
- Les appels de `setTimeout` imbriqués sont une alternative plus flexible à `setInterval`, ils permettent de configurer le temps *entre* les exécution plus précisément.
293
293
- L'ordonnancement à délai nul avec `setTimeout(func, 0)` (le même que `setTimeout(func)`) permet de planifier l'exécution "dès que possible, mais seulement une fois que le bloc de code courant a été exécuté".
294
-
- Le navigateur limite le délai minimal pour cinq appels imbriqués ou plus de `setTimeout` ou pour`setInterval` (après le 5ème appel) à 4 ms. C'est pour des raisons historiques.
294
+
- Le navigateur limite le délai minimal pour cinq appels imbriqués ou plus de `setTimeout` ou pour`setInterval` (après le 5ème appel) à 4 ms. C'est pour des raisons historiques.
295
295
296
296
Veuillez noter que toutes les méthodes de planification ne garantissent pas le délai exact.
297
297
298
298
Par exemple, le timer interne au navigateur peut être ralenti pour de nombreuses raisons :
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,6 @@ Un appel à `throttle(func, ms)` retourne `wrapper`.
33
33
34
34
1. Lors du premier appel, le `wrapper` exécute simplement `func` et définit l'état de charge (`isThrottled = true`).
35
35
2. Dans cet état, tous les appels sont mémorisés dans `savedArgs/savedThis`. Veuillez noter que le contexte et les arguments sont d'égale importance et doivent être mémorisés. Nous avons besoin d'eux simultanément pour reproduire l'appel.
36
-
3. Après `ms` millisecondes,`setTimeout` se déclenche. L'état de charge est supprimé (`isThrottled = false`), et si nous avions ignoré les appels, alors `wrapper` est exécuté avec les derniers arguments et contextes mémorisés.
36
+
3. Après `ms` millisecondes,`setTimeout` se déclenche. L'état de charge est supprimé (`isThrottled = false`), et si nous avions ignoré les appels, alors `wrapper` est exécuté avec les derniers arguments et contextes mémorisés.
37
37
38
38
La 3ème étape n’exécute pas `func`, mais `wrapper`, car nous devons non seulement exécuter `func`, mais encore une fois entrer dans l’état de charge et configurer le délai d’expiration pour le réinitialiser.
0 commit comments