Vérification des chiffres d'un nombre en JavaScript

Supposons que nous ayons le nombre :

javascriptlet num = 12345;

Tenter d'accéder au premier caractère du nombre conduira à un comportement inattendu :

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // c'est cela qui se déclenchera
}

Comme vous devez déjà le savoir, le problème est que l'on peut accéder aux caractères d'une chaîne, mais pas aux chiffres d'un nombre :

javascriptlet num = 12345;
console.log(num[0]); // affichera undefined

Pour résoudre le problème, convertissons notre nombre en chaîne de caractères :

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // c'est cela qui se déclenchera
} else {
  console.log('---');
}

Il n'est pas nécessaire d'introduire une nouvelle variable, on peut appliquer [0] directement au résultat de la fonction String :

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('correct'); // affichera 'correct'
} else {
  console.log('incorrect');
}

Supposons maintenant que nous voulions vérifier si le premier chiffre est égal à 1, ou à 2. Écrivons le code correspondant :

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

Dans ce cas, la construction String(num)[0] se répète deux fois. C'est, d'une part, long, et d'autre part, non optimal, car nous convertissons deux fois le nombre en chaîne - la seconde fois est superflue, et les ressources du programme sont gaspillées pour cela.

Corrigeons le problème :

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Soit un nombre entier. Écrivez une condition qui vérifie si le dernier chiffre de ce nombre est égal à zéro.

Задание 2

Supposons que la variable num stocke un nombre. Déterminez si le nombre est pair ou non. Le nombre sera pair si le dernier caractère est égal à 0, 2, 4, 6 ou 8, et impair dans le cas contraire.