L'auteur de l'article, dont nous publions la traduction aujourd'hui, dit qu'il programme en JavaScript depuis de nombreuses années. Pendant ce temps, il a rassemblé une collection d'excellents fichiers sur une seule ligne - des fragments de code, étonnamment puissants, étant donné qu'ils tiennent sur une seule ligne. Selon lui, les grandes opportunités sont également une grande responsabilité, vous devez donc utiliser ces constructions avec soin, en veillant à ce qu'elles ne nuisent pas à la lisibilité des programmes.

Voici 13 joueurs sur une seule ligne. Exemples préparés à l'aide de Node.js v11.x. Si vous les utilisez dans un autre environnement, cela peut affecter leur exécution.
1. Contrainte des valeurs au type logique
Voici comment convertir une valeur en type booléen:
const myBoolean = !!myVariable;
Une double négation (
!!
) est nécessaire pour qu'une valeur vraie du point de vue des règles JavaScript soit convertie en
true
et fausse en
false
.
2. Se débarrasser des valeurs en double dans les tableaux
Voici comment supprimer les valeurs en double d'un tableau:
const deDupe = [...new Set(myArray)];
Set
structures de données
Set
ne stockent que des valeurs uniques. Par conséquent, l'utilisation d'une telle structure de données et d'une syntaxe étendue vous permet de créer un nouveau tableau basé sur
myArray
qui n'a pas de valeurs en double.
3. Création et définition des propriétés des objets par condition
Pour définir les propriétés des objets à l'aide de l'opérateur
&&
, vous pouvez utiliser la syntaxe d'étalement:
const myObject = { ...myProperty && { propName: myProperty } };
Si, à la suite du calcul du côté gauche de l'expression, quelque chose est reçu que JS perçoit comme une fausse valeur, alors
&&
n'effectuera pas de calculs supplémentaires et aucune nouvelle propriété ne sera créée et définie.
myObject
sera vide. Si la construction
...myProperty
renvoie un résultat que JS perçoit comme vrai, grâce à la construction
&&
, la propriété
propName
apparaît dans l'objet, qui stocke la valeur reçue.
4. Fusion d'objets
Voici comment créer un nouvel objet dans lequel deux autres objets seront combinés:
const mergedObject = { ...objectOne, ...objectTwo };
Cette approche peut être utilisée pour organiser la fusion d'un nombre illimité d'objets. De plus, si les objets ont des propriétés avec les mêmes noms, une seule de ces propriétés restera dans l'objet final, qui appartient à celui des objets d'origine, qui est situé à droite des autres. Veuillez noter qu'une petite copie des propriétés des objets est utilisée ici.
5. Échange de valeurs variables
Afin d'échanger des valeurs entre deux variables sans utiliser de variable auxiliaire, vous pouvez le faire:
[varA, varB] = [varB, varA];
Après cela, ce qui était dans
varA
entre dans
varB
, et vice versa. Ceci est possible grâce à l'utilisation de mécanismes internes de déstructuration.
6. Suppression de fausses valeurs du tableau
Voici comment supprimer toutes les valeurs considérées comme fausses dans JavaScript d'un tableau:
const clean = dirty.filter(Boolean);
Au cours de cette opération, les valeurs telles que
null
,
undefined
,
false
,
0
, ainsi que les lignes vides, seront supprimées du tableau.
7. Conversion de nombres en chaînes
Afin de convertir les nombres stockés dans le tableau en leur représentation sous forme de chaîne, vous pouvez faire ceci:
const stringArray = numberArray.map(String);
Les éléments chaîne du tableau lors d'une telle conversion resteront chaîne.
Vous pouvez également effectuer la transformation inverse en convertissant les valeurs du type
String
en valeurs du type
Number
:
const numberArray = stringArray.map(Number);
8. Récupération des valeurs des propriétés des objets
Voici comment extraire la valeur de la propriété d'un objet et l'écrire dans une constante dont le nom est différent du nom de cette propriété:
const { original: newName } = myObject;
En utilisant cette construction, une nouvelle constante sera créée,
newName
, dans laquelle la valeur de la propriété d'
original
de l'objet
myObject
sera écrite.
9. Formatage du code JSON
Voici comment convertir le code JSON en un aspect lisible:
const formatted = JSON.stringify(myObj, null, 2);
La méthode
stringify
prend trois paramètres. Le premier est un objet JavaScript. La seconde, facultative, est une fonction qui peut être utilisée pour traiter le code JSON résultant de la conversion de l'objet. Le dernier paramètre indique le nombre d'espaces à utiliser lors de l'indentation dans le code JSON. Si vous omettez le dernier paramètre, alors tout le code JSON reçu sera une longue chaîne. Si l'objet
myObj
a des références circulaires, il ne peut pas être converti au format JSON.
10. Créez rapidement des tableaux numériques
Voici comment créer un tableau et le remplir de chiffres:
const numArray = Array.from(new Array(52), (x, i) => i);
Le premier élément d'un tel tableau a un index de 0. La taille du tableau peut être spécifiée à l'aide d'un littéral numérique ou d'une variable. Ici, nous créons un tableau de 52 éléments, qui, par exemple, peut être utilisé pour stocker des données sur un jeu de cartes.
11. Création de codes pour l'authentification à deux facteurs
Pour générer le code à six chiffres utilisé dans les mécanismes d'authentification à deux facteurs ou dans d'autres mécanismes similaires, vous pouvez procéder comme suit:
const code = Math.floor(Math.random() * 1000000).toString().padStart(6, "0");
Veuillez noter que le nombre de zéros dans le nombre par lequel le résultat retourné par
Math.random()
doit être multiplié doit correspondre au premier paramètre (
targetLength
) de la méthode
padStart
.
12. Mélange de tableaux
Pour mélanger un tableau sans savoir exactement ce qu'il contient, vous pouvez le faire:
myArray.sort(() => { return Math.random() - 0.5});
Il existe de meilleurs algorithmes pour mélanger les tableaux. Par exemple, l'algorithme de réarrangement de Fisher-Yates. Découvrez les différents algorithmes de mélange des tableaux
ici .
13. Création de copies profondes d'objets
La méthode de copie en profondeur d'objets proposée ici ne diffère pas en termes de performances particulièrement élevées. Mais si vous avez besoin de résoudre ce problème à l'aide d'une ligne, vous pouvez utiliser le code suivant:
const myClone = JSON.parse(JSON.stringify(originalObject));
Il convient de noter que s'il existe des liens circulaires dans l'
originalObject
, une copie de celui-ci échouera. Cette technique est recommandée pour une utilisation sur des objets simples que vous créez vous-même.
Une copie superficielle de l'objet peut être créée à l'aide de la syntaxe étendue:
const myClone = { ...orignalObject };
Résumé: sur la combinaison et l'extension du code sur une seule ligne
Il existe de nombreuses façons de combiner les extraits de code présentés ici. Cela vous permet de résoudre de nombreux problèmes avec leur aide et en même temps d'utiliser des constructions de langage très compactes. L'auteur de ce matériel estime qu'au cours de l'évolution de JavaScript, de nouvelles fonctionnalités y apparaîtront qui aideront à écrire du code compact et puissant.
Chers lecteurs! Quels exemples de lignes simples JS utiles pourriez-vous ajouter à ce matériel?

