Exercice JavaScript Corrigé – Partie 7

Avec des exercices corrigés en JavaScript, vous pratiquerez divers concepts du langage JavaScript. Vous commencerez par des exercices JavaScript de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Écrivez une fonction JavaScript appelée nbrPaire() qui reçoit un entier n et retourne un tableau contenant tous les nombres pairs compris entre 1 et n inclus.

Exemple:

nbrPaire(6)
➞ [2, 4, 6]

nbrPaire(4)
➞ [2, 4]

nbrPaire(2)
➞ [2]
// Fonction permettant de trouver tous les nombres pairs
// compris entre 1 et n
function nbrPaire(n) {

    // Tableau qui contiendra les nombres pairs trouvés
    let paire = [];

    // Parcourt tous les nombres de 1 jusqu'à n
    for (let i = 1; i <= n; i++) {

        // Vérifie si le nombre est pair
        // Un nombre est pair si son reste lors de la division
        // par 2 est égal à 0
        if (i % 2 === 0) {

            // Ajoute le nombre pair dans le tableau
            paire.push(i);
        }
    }

    // Retourne le tableau contenant tous les nombres pairs
    return paire;
}

// Test de la fonction avec différents exemples
console.log(nbrPaire(6));
console.log(nbrPaire(4));
console.log(nbrPaire(2));
 

Exercice 2:

Écrivez une fonction JavaScript appelée isSame() qui renvoie TRUE si tous les caractères d'une chaîne sont identiques, sinon renvoie FALSE.

Exemple:

isSame("bbbbbb") ➞ true
isSame("abababab") ➞ false
isSame("111111") ➞ true
// Fonction permettant de vérifier si tous les caractères
// d'une chaîne sont identiques
function isSame(str) {

    // Transforme la chaîne en tableau de caractères
    // puis crée un Set qui supprime automatiquement les doublons
    const caracteres = new Set(str);

    // Si le Set contient un seul élément,
    // tous les caractères de la chaîne sont identiques
    return caracteres.size === 1;
}

// Test de la fonction avec différents exemples
console.log(isSame("bbbbbb"));
console.log(isSame("abababab"));
console.log(isSame("111111"));
 

Exercice 3:

Écrivez une fonction JavaScript appelée miroir() qui reçoit un tableau de nombres et retourne un nouveau tableau en miroir. Le tableau retourné doit contenir :

  • tous les éléments du tableau original ;
  • puis les éléments précédents dans l'ordre inverse, sans répéter le dernier élément.

Exemple:

miroir([1, 2, 3]) ➞ [1, 2, 3, 2, 1]
miroir([9, 8, 7]) ➞ [9, 8, 7, 8, 9]
miroir([10, 20]) ➞ [ 10, 20, 10 ]
// Fonction permettant de transformer un tableau en miroir
function miroir(tab) {

    // Copie le tableau puis récupère tous les éléments
    // sauf le dernier afin d'éviter de le répéter
    const partie = tab.slice(0, -1);

    // Inverse l'ordre de la partie récupérée
    partie.reverse();

    // Combine le tableau original avec sa partie inversée
    return [...tab, ...partie];
}

// Test de la fonction avec différents exemples
console.log(miroir([1, 2, 3]));
console.log(miroir([9, 8, 7]));
console.log(miroir([10, 20]));
 
 

Exercice 4:

Écrivez une fonction JavaScript récursive appelée somme() qui reçoit un nombre naturel n et retourne la somme des n premiers nombres naturels.

Exemple:

somme(3) ➞ 6
// 1 + 2 + 3 = 6
somme(2) ➞ 3
somme(10) ➞ 55
// Fonction récursive permettant de calculer
// la somme des n premiers nombres naturels
function somme(n) {

    // Condition d'arrêt :
    // lorsque n atteint 0, la somme vaut 0
    if (n === 0) {
        return 0;
    }

    // Ajoute n à la somme des nombres précédents
    // en appelant récursivement la fonction avec n - 1
    return n + somme(n - 1);
}

// Test de la fonction avec différents exemples
console.log(somme(3));
console.log(somme(2));
console.log(somme(10));
 

Exercice 5:

Écrivez une fonction JavaScript appelée getCategory() qui reçoit une URL sous forme de chaîne de caractères et retourne le nom de la catégorie présente dans l'URL.

Exemple:

getCategory("https://waytolearnx.com/html/") ➞ "html"
getCategory("https://waytolearnx.com/css/") ➞ "css"
getCategory("https://waytolearnx.com/javascript/") ➞ "javascript"
// Fonction permettant d'extraire la catégorie depuis une URL
function getCategory(url) {

    // Sépare l'URL à chaque caractère "/"
    const parties = url.split("/");

    // La catégorie se trouve à l'index 3
    // dans une URL de la forme :
    // https://waytolearnx.com/categorie/
    return parties[3];
}

// Test de la fonction avec différents exemples
console.log(getCategory("https://waytolearnx.com/html/"));
console.log(getCategory("https://waytolearnx.com/css/"));
console.log(getCategory("https://waytolearnx.com/javascript/"));
 

Exercice 6:

Écrivez une fonction JavaScript appelée isObjEmpty() qui renvoie TRUE si un objet est vide, sinon renvoie FALSE.

Exemple:

isObjEmpty({ a: 1, b: 2 }) ➞ false
isObjEmpty({ a: 1 }) ➞ false
isObjEmpty({}) ➞ true
// Fonction permettant de vérifier si un objet est vide
function isObjEmpty(obj) {

    // Object.keys() retourne un tableau contenant
    // les clés (propriétés) de l'objet
    const cles = Object.keys(obj);

    // Si le tableau des clés est vide, l'objet est vide
    return cles.length === 0;
}

// Test de la fonction avec différents exemples
console.log(isObjEmpty({ a: 1, b: 2 }));
console.log(isObjEmpty({ a: 1 }));
console.log(isObjEmpty({}));
 
 

Exercice 7:

Écrivez une fonction qui récupère les n derniers éléments d'un tableau.

Exemple:

lastNitem([8, 1, 5, 2, 4, 9], 3) ➞ [2, 4, 9]
lastNitem([1, 2, 3], 1) ➞ [3]
lastNitem([1, 2, 3, 4], 10) ➞ "invalide"
lastNitem([1, 2, 3, 4], 0) ➞ []
// Fonction permettant de récupérer les n derniers
// éléments d'un tableau
function lastNitem(t, n) {

    // Vérifie si n ne dépasse pas la longueur du tableau
    if (n > t.length) {

        // Retourne "invalide" si n est trop grand
        return "invalide";
    }

    // Retourne les n derniers éléments du tableau
    return t.slice(t.length - n);
}

// Test de la fonction avec différents exemples
console.log(lastNitem([8, 1, 5, 2, 4, 9], 3));
console.log(lastNitem([1, 2, 3], 1));
console.log(lastNitem([1, 2, 3, 4], 10));
console.log(lastNitem([1, 2, 3, 4], 0));
 

Exercice 8:

Écrivez une fonction JavaScript appelée removeSpecialChar() qui reçoit une chaîne de caractères et supprime tous les caractères spéciaux, en conservant uniquement les lettres de A à Z.

Exemple:

removeSpecialChar("@W*-a?;+y!°T-8o_&L?e!=r%$n<X") ➞ "WayToLearnX"
removeSpecialChar(",A@[L]?e*$!x") ➞ "ALex"
removeSpecialChar("$*;H[!e&}l]l@{^.o") ➞ "Hello"
// Fonction permettant de supprimer les caractères spéciaux
// et de conserver uniquement les lettres
function removeSpecialChar(str) {

    // Remplace tous les caractères qui ne sont pas
    // des lettres de A à Z ou de a à z par une chaîne vide
    return str.replace(/[^a-z]/gi, '');
}

// Test de la fonction avec différents exemples
console.log(removeSpecialChar("@W*-a?;+y!°T-8o_&L?e!=r%$n<X"));
console.log(removeSpecialChar(",A@[L]?e*$!x"));
console.log(removeSpecialChar("$*;H[!e&}l]l@{^.o"));
 

Exercice 9:

Écrivez une fonction JavaScript appelée checkPalindrome() qui renvoie TRUE si un nombre est un palindrome.

Exemple:

checkPalindrome(212) ➞ true
checkPalindrome(123) ➞ false
checkPalindrome(75257) ➞ true
// Fonction permettant de vérifier si un nombre est un palindrome
function checkPalindrome(n) {

    // Convertit le nombre en chaîne de caractères
    const str = String(n);

    // Inverse la chaîne de caractères
    const inverse = str.split("").reverse().join("");

    // Compare la chaîne originale avec la chaîne inversée
    return str === inverse;
}

// Test de la fonction avec différents exemples
console.log(checkPalindrome(212));
console.log(checkPalindrome(123));
console.log(checkPalindrome(75257));
 
qcm-javascript

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *