Quatre méthodes pour échanger deux variables
Voici un petit post très simple qui vous montrera différentes manières d’échanger 2 variables.
Problématique
En tant que débutant, nous avons tendance à vouloir écrire ce type de code pour échanger une variable a
et une variable b
.
a = 5;b = 7;
a = b;b = a;
console.log(a, b); // Retourne 7 et 7
Or cette technique ne fonctionne pas car nous écrasons la variable a
au début que nous affectons à b
. Du coup nous nous retrouvons avec deux variables ayant la même valeur.
Utilisation d’une variable temporaire
let a = 2;let b = 5;
tmp = a;a = b;b = tmp;
console.log(a, b); // Retourne 5 et 2
Voici la première manière “algorithmique”. Cette technique consiste à utiliser une variable temporaire tmp
, ce qui permet de sauvegarder la valeur de a
avant de l’écraser.
Utilisation des mathématiques
Une technique consiste à utiliser le pouvoir des mathématiques, en stockant deux variables dans une seule.
let a = 2;let b = 5;
a = a - b;b = a + b;a = b - a;
console.log(a, b); // Retourne 5 et 2
Cette technique, bien que plus compliqué au premier abord, peut être pertinente car elle utilise un emplacement de variable en moins.
Attention: cette technique ne fonctionne que si
a
et b
sont des entiers.
Utilisation d’une méthode fourbe
Voici une technique qui tient sur une seule ligne, avant l’arrivée de la déstructuration.
Cette technique à cependant pour défaut de ne pas être très lisible.
let a = 2;let b = 5;
b = [a, (a = b)][0];
console.log(a, b); // Retourne 5 et 2
Utilisation de la déstructuration
Voici le Graal de l’inversion de variables qui se fait en une seule ligne. En plus d’être lisible, elle tient sur une seule ligne !
Une technique qui fonctionne sur la plupart des langages modernes (fonctionne en javascript et python) consiste à utiliser la déstructuration. Voici un exemple.
let a = 2;let b = 5;
[a, b] = [b, a];
console.log(a, b); // Retourne 5 et 2
a,b = b,a - c’est le b.a-ba :D
Purifiez vos URL avec Apache
Faites attention au référencement en évitant le duplicate content
Introduction à git hooks
Rendez vos messages de commit uniformes !
Simplifiez les conditions avec les opérateurs logiques et opérateurs ternaires
Découvrez une nouvelle manière de simplifier votre code
Présentation du pattern "Error first"
Une astuce simple pour améliorer la lecture de votre code