Exercice JavaScript Corrigé – Partie 10

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:

Créez une fonction qui accepte deux paramètres et, si les deux paramètres sont des chaînes, additionnez-les comme s’ils étaient des entiers ou si les deux paramètres sont des entiers, concaténez-les.

Exemple:

add("2", "3") ➞ 5

add(2, 3) ➞ "23"

add("2", 3) ➞ null

Solution:

function add(a, b) {

	if (typeof a !== typeof b) 
	    return null;
	    
	if (typeof a === 'string') 
	    return Number(a) + Number(b);
	    
	return `${a}${b}`;
}
 

Exercice 2:

Créez une fonction qui renvoie le produit de tous les entiers impairs dans un tableau.

Exemple:

prodImp([1, 2, 3, 4]) ➞ 3

prodImp([3, 6, 8, 5, 5, 7]) ➞ 525

prodImp([1, 0, 1, 0, 1, 0]) ➞ 1

Solution:

function prodImp(tab) {

	return tab.filter(i => i % 2 !== 0).reduce((a,b) => a * b);
}
 

Exercice 3:

Créez une fonction qui répète chaque caractère dans une chaîne n fois.

Exemple:

repeatChr("alex", 3) ➞ "aaallleeexxx"

repeatChr("waytolearnx", 1) ➞ "waytolearnx"

repeatChr("bob", 2) ➞ "bboobb"

Solution:

function repeatChr(str, n) {

	return str
	        .split('')
	        .map(c => c.repeat(n))
	        .join('');
}
 
 

Exercice 4:

Vous avez un tableau avec des mots aléatoires, mais votre programme n’accepte pas les mots commençant par la lettre majuscule « Z ». Supprimez les mots non acceptés et renvoyez le nouveau tableau.

Exemple:

filterWords(["Bob", "Alex", "Zoello"]) ➞ ["Bob", "Alex"]

filterWords(["Lion", "Zebra", "Gazelle"]) ➞ ["Lion", Gazelle"]

filterWords(["Mercedes", "Bmw", "Audi"]) ➞ ["Mercedes", "Bmw", "Audi"]

Solution:

function filterWords(tab) {

	return tab.filter(str => /^[^Z]/.test(str))
}
 

Exercice 5:

Écrivez une fonction qui prend un tableau d’éléments et ne renvoie que les entiers.

Exemple:

getInt([1, 2, "3", "4", "5", 6]) ➞ [1, 2, 6]

getInt(["Vache", 20, "Cheval", 1, "Poule", 50]) ➞ [20, 1, 1]

getInt(["Str", false, 5.56, 6]) ➞ [6]

Solution:

function getInt(tab) {

	return tab.filter(Number.isInteger);
}
 

Exercice 6:

Créez une fonction qui convertit deux tableaux de coordonnées x et y en un tableau de coordonnées (x, y).

Exemple:

convert([0, 2, 5], [8, 6, 9]) ➞ [ [ 0, 8 ], [ 2, 6 ], [ 5, 9 ] ]

convert([2, 2], [4, 8]) ➞ [ [ 2, 4 ], [ 2, 8 ] ]

convert([1], [2]) ➞ [ [ 1, 2 ] ]

Solution:

function convert(tabX, tabY) {

	return tabX.map((ix, iy) => [ix, tabY[iy]])
}
 
 

Exercice 7:

Créez une fonction qui remplace toutes les voyelles d’une chaîne par un caractère spécifié.

Exemple:

replaceVoyel("voyelle", "$") ➞ "v$y$ll$"

replaceVoyel("boulevard", "?") ➞ "b??l?v?rd"

replaceVoyel("bouche", "@") ➞ "b@@ch@"

Solution:

function replaceVoyel(str, c) {

	return str.replace(/[aeoiu]/g, c);
}
 

Exercice 8:

Créez une fonction pour calculer le déterminant d’une matrice 2 x 2.

[[a, b], 
 [c, d]]

Le déterminant de la matrice ci-dessus est: ad – bc:

Exemple:

det([
  [1, 1],
  [2, 3]
]) ➞ 1

det([
  [6, 4],
  [2, 3]
]) ➞ 10

det([
  [2, 4],
  [4, 2]
]) ➞ -12

Solution:

function det(matrice) {

	return (matrice[0][0]*matrice[1][1] - matrice[1][0]*matrice[0][1]);
}
 

Exercice 9:

Écrivez une fonction qui renvoie l’extension des fichiers.

Exemple:

getExtension(["file.html", "file.js"]) ➞ ["html", "js"]

getExtension(["image.jpg", "image.png", "image.gif"]) ➞ ["jpg", "png", "gif"]

getExtension(["file.pdf", "file.txt", "file.docx"]) ➞ ["pdf", "txt", "docx"]

Solution:

function getExtension(files) {

	return files.map(file => file.split(".").pop())
}
QCM Javascript

Laisser un commentaire

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