Astuce : Convertir une chaîne de caractères en booléen

Début du contenu principal

Parfois, on peut rencontrer le problème de convertir la représentation en chaîne d’une valeur en la valeur elle-même. Cette opération est souvent simple, comme dans le cas des valeurs numériques. Cependant, les représentations en chaîne de valeurs booléennes peuvent être un peu plus délicates.

Ce problème est dû au fait que toute chaîne non vide est considérée comme véridique en JavaScript. De plus, les chaînes peuvent avoir des majuscules ou des espaces différents, ce qui rend plus difficile leur comparaison directe avec une constante.

Pour contrer ce problème, il est souvent utile d’utiliser quelques transformations, à savoir String.prototype.toLowerCase() et String.prototype.trim()afin de rendre la représentation de la chaîne de caractères de la valeur plus cohérente. En outre, un tableau des valeurs acceptables pourrait faciliter la conversion dans certains cas.

const toBoolean = (value, truthyValues = ['true']) => {
  const normalizedValue = String(value).toLowerCase().trim();
  return truthyValues.includes(normalizedValue);
};

toBoolean('true'); 
toBoolean('TRUE'); 
toBoolean('True'); 
toBoolean('tRue '); 
toBoolean('false'); 
toBoolean('FALSE'); 
toBoolean('False'); 
toBoolean('fAlse '); 
toBoolean('YES', ['yes']); 
toBoolean('no', ['yes']); 

Extraits et collections recommandés

  • Une collection de conseils et d’astuces rapides pour améliorer vos compétences en codage, étape par étape.

  • Convertit une chaîne de valeurs séparées par des virgules (CSV) en un tableau d’objets 2D.
    La première ligne de la chaîne est utilisée comme ligne de titre.

  • Convertit une chaîne hsl() chaîne de couleur en un objet contenant les valeurs de chaque couleur.

  • Convertit un rgb() chaîne de couleur en un objet contenant les valeurs de chaque couleur.

À propos deCookiesFAQRSSGitHubTwitter

Site web, nom et logo © 2017-2022 30 secondes de code
Bribes individuelles sous licence CC-BY-4.0
Propulsé par Netlify, Next.js &amp ; GitHub

Laisser un commentaire